reinplemneting parser