HW7 Complete (massive code theft)

I tried incorporating some aspects of others improvements into my code
and I've fretted away too much time in making all the tests pass and
having some updates clobber others. I prefer working with strings, it's
more elegant for me but I incorporated most of Alex's code (with teensey
weensey changes). Yeah I also see why nullable types are used and I see
why they are better than plain strings.