hasCycle
peek iterator