completed work on abstract class