add options 'key' for customize cache key