@jameshalsall This should be re-useable in a mixin