fixing the abstract class