Iterators as Interfaces