refactoring of base classes