managers support nested inheritance

Now the iterator try the cast until the leaf subclass. Not only the "first-level" subclasses.