refactoring, even more basic classes