initial commit
The code runs. I haven't made sure that it works yet though
Tests passing