Changed the logik behind the Caching,
created abstract CacheProvider for abstracting the caching for multiple cache implementations