refactoring continues, new classes added