introduce cursor iterator and refactor accordingly schedule and participant manager