Committing all of Jon's work. Adam will fork this repo and start learning how it works.