remove left recursion