"abstract base class"