Now compiles
Passes simple unit tests