refactored for better isolation
added searchers