search functionality complete