implement new iteration protocol.