Iterator joiners = Layout.joiners.iterator();
Iterator joiners = Layout.getJoiners().iterator();
    private void callInitPaths(SimulationCounter counters)     {	//find all the joiners that are immediately contained in a FeedbackLoop	Iterator joiners = Layout.joiners.iterator();	//clone the joiner schedules		FlatNode joiner;	//iterate over all of the joiners of a feedbackloop	while (joiners.hasNext()) {	    joiner = (FlatNode)joiners.next();	    if ((((SIRJoiner)joiner.contents).getParent() instanceof SIRFeedbackLoop)) {		//create the initPath calls 		SIRFeedbackLoop loop = (SIRFeedbackLoop)((SIRJoiner)joiner.contents).getParent();		int delay = loop.getDelayInt();		JoinerScheduleNode current = ((JoinerScheduleNode)JoinerSimulator.schedules.get(joiner));		for (int i = 0; i < delay; i++) {		    //for each init path call find the correct buffer to place it in.		    while(true) {			if (current.buffer.endsWith("1")) {			    //create the joinerCode Node and put it in the init schedule			    JoinerScheduleNode prev = 				(JoinerScheduleNode)currentJoinerCode.get(joiner);			    JoinerScheduleNode code = new JoinerScheduleNode(i, current.buffer);			    if (prev == null) {				//first node in joiner code				//this will add it to the joiner code hashmap				//this hashmap store the first instruction of each code sequence				joinerCode.put(joiner, code);			    }			    else {				//connect to the prev				prev.next = code;			    }			    //set current			    currentJoinerCode.put(joiner, code);			    //record that a data item was placed in this buffer			    counters.incrementJoinerBufferCount(joiner, current.buffer);			    //we found a buffer so break and place the next initPath call			    current = current.next;			    break;			}			current = current.next;		    }		}	    }	}    }