adding IteratorPattern