add some caching for instant results