Creating an abstract base class