base class and tests