add cacheKey and cacheLocation