more flexible cache keys