add partial-search implementation