added composit cache key providers to allow for arbitrary cache key differentiators