added search capabilities and caching