refactoring (added classes)