Updated Lexer 2