implement search with typeahead