Refactor and write specs for Searcher