A cacher implemented using decorators