result caching added.