updated lexer