refactoring mixins