start work on lexer