This commit should close #13. All of the changes are rolled up into this commit and my pretesting seems correct. Will add unit tests with live data later to verify.