smarter mixins added