Split parsers and clean things up a bit