lexer almost done