version iterate