search is now async