switch back to using an explicit cache key instead of a bool