added different caching strategies