Added the SelfIterator class