Resolved date parsing bug

And now my unit test passes
Restructured project

Moved and renamed a lot of files. Created directories to tidy things up
a bit. Renamed classes to make their function a bit clearer.
Refactoring

Extracted some functionality out to private methods