basic result caching