additional classes and tests