Refactor parsers to throw exceptions over logging them, add tests