Implemented GenericIterator the right way