If it's helpful, I can point out which commits in a PR are modified code as opposed to refactors that I made along the way (I try to keep them separate).  In this PR, the first 3 are new, should be just the last one that was a little cleanup I indulged myself in.