Exercises ch16

UGH!
Interesting approach - I'd not considered doing it like this.  But mostly because I wanted to use smart matching :)