painful large Parser class...