more functions in lexer