refine parser