removed the used of last_token, instead we use lookahead