add abstract base class example