rebuilt parser