@agorrod, I agree, this is a better approach, thanks!

I've gone ahead and made these changes.

I'm going to merge this branch into develop after a run of the test suite, but please skim them to make sure that I didn't mess anything up.