Fully functioning base class. Driver needs implementaion.