switched to using mixin