provide a base class to derive from