added CacheFactory