Add subclasses and type restrictions