added getCacheKey() method