Refactored some names, a couple of bug fixes, and switched to MSTest for unit testing.