The cache provider should decide what to cache. So I've added the ShouldCache to the ICache interface