renamed main to lexer