solver caching