Make CacheProvider async with callback argument