made this class abstract, a prototype for its sub-classes
defined functions to be used by this parent class