Internal classes, do not use directly!