final each is unnecessary