search method impl