The main logic should be hidden to Search