a bit refactor on searcher
change interface