new classes for refactoring