Finished initial impl
Adding tests
Adding tests
Added more tests