why ParserImpl? Why not just Parser?