Refactor search results caching
Minor refactoring
Improve caching
Add minimal support for visual kinds