full caching, nested objects