Alternatively, If it makes things much simpler, or faster, we would could pass `i` to every step method: `point = step.step(point, i)`