starting use lexer to prepare this code