refactor add CacheService