Lexer has been refactored