initial lexer work