the base class