More work on the lexer