Bunch of stuff.

This is basically a redo of my "Massive commit" that I submitted a couple of months ago. I went through and fixed the issues that still existed in this branch and updated a couple that could have been done better than I did them in my previous PR.