refactoring, trying out some real classes