cache mixin