Okay, I've merged your changes as-is (just squashed the 42 commits into one).  Thanks for the contribution.