improve search functionality