made base class an abstract class