my progress thus far

There is no need to merge this until you are ready to start working on it again. I will continue to send commits to this pull request as I make more progress.