make this a mixin