a step before final version for cacheInverse