basic search functionality complete