exercise 33 - advanced search (almost complete)