further progress on lexer