more work on lexer/parser