Refactor the parser even more.