Initial project setup
Added unit tests and finished initial behavior