Iterative Thinking