New parser with composite pattern