add parsers and some code cleaning