cache invalidating is hard