start of lexer