Split parser out to its own file. Add a message parser.