better cache decorators