Separation of concerns and creation of search module