added first base classes, added tests, added less mixins