My changes.

There is a lot in the pull request.  I've made some significant changes to the application.  You may want to clone my project separately to check it out first.

If you've made changes to your code this pull request will be very painful to merge.  If you're nervous or concerned about what to do here, let's get on a hangout to walk through it.