Internal classes (not for application use).