unified search() functions