most of parsing code in place (not tested)