added constructors to subclasses