Iteration 2 for Lexer