Converted the base class to abstract