refactor parser to it's own file with a unit test that doesn't quite work yet