[#72] Major refactoring, need to clean up tests
[#72] All tests pass now
[#72] All memory leaks fixed
[#72] 100% coverage
[#72] Fixed up docs