- reorder tokens
- ParseError - automatically determine if called with new
- get rid of UnexpectedToken