add better searching mechanism