working base class