add better search function