add search basic impl and tests