compelte accurate search method,but still EXPERIMENTAL