revised parse