Changed the subclasses to meet the abstract class