Should this be a mixin?