An implementation of iterators
