done with lexer