invalidating cache is hard