extract base class