added CacheStrategyInterface, refactoring