more parser optimizations