Phase 2 -- lots of updates and a few unit tests
Updating README