add working search()