This logic will not work. An object being traversable does not mean it will always be handled through the adder and remover. This is even a very uncommon case (the only way I see to do it is to attach the ``collection`` type on the ``getIterator`` method). The adder and remover are on the parent object, not on the collection itself