What's the difference between State.OrderingInfo and NonTerminal.OrderingInfo? If there is one, make sure it's in the javadocs for both classes. Otherwise, merge the two classes.