I'd rather have it this way. A class named "Extract" means nothing, seeing `new ExtractIterator` makes i,mmediate sense in any context, whereas `new Extract` does not. A parallel example is a fictional `Core\Loader\Class`, I think everyone agree having a class named Class is quite silly.

We have discussed suffixes for classes plenty times in the core and the consensus has always been to keep them to make class names stand out as something meaningful. Emulating some java aspects does not have to be a bad thing.