Final Commit

Mostly unit tests