caching partial results