Updated class hierarchy and added constructors