more work on the parser