implementing in-memory caching
caching refined