add search need optimise