adding IteratorAggregate implementation