At the moment CacheManager has two responsibilities, one is to read cached data and the other is to write data that should be cached. We should break the code in two classes CacheReader and CacheWriter.