Week2

Here's the branch for week 2 including everything up to the first code review.
You generally want to have one test for each type of return value when dealing with an array response. You want to test that no matches returns `[]`, one match returns `[the match]` and more than one has the right matches in the array. There is a name for this principle but I don't remember it.