client-based caching working