Did a little design work for the iterator.