Introduce IterationCoordinator and a generic implementation via BaseIterationCoordinator