Review

My code review :)

I tried to make relatively atomic commits with explanatory comments in the body of the commit message.

I also left some refactoring stuff for you to do while hinting how to do it. Let me know if you have any questions!

j