sped up parser by removing second recursion