Most of the way there; working on feature parity and TESTS!