Abstract out into mixin.