Nothing outside core uses ComponentType, so I made it package protected
and final