Initial search implementation
Merge branch 'search'
Search improvements