Handle search misspellings

What is `self.results` for? Could the search methods not return the results directly? I'm not sure I like that the API caller has to know to access `results` after searching