for (int i = 0; i < partiesCount; i++) {
final int partyIndex = i;
final PhaseParty<C, PHASE> party = parties.get(i);
service.submit(new CatchyRunnable(new Runnable() {
@Override
public void run() {
Phase<?, PHASE> lastPhase = null;
try {
for (Phase<?, PHASE> phase : phases) {