initial lexer draft