Split cache view into a mixin and provide a method decorator