added a lexer