if (node.contents.getName().indexOf("Identity") != -1) return getDownStreamHelper(node.edges[0]);
    private static HashSet getDownStreamHelper(FlatNode node) {	if (node == null)	    return new HashSet();		if (node.contents instanceof SIRFilter) {	    if (node.contents.getName().indexOf("Identity") != -1)		return getDownStreamHelper(node.edges[0]);	    HashSet ret = new HashSet();	    ret.add(node);	    return ret;	}	else if (node.contents instanceof SIRJoiner) {	    if (joiners.contains(node)) {		HashSet ret = new HashSet();		ret.add(node);		return ret;	    }		    else return getDownStreamHelper(node.edges[0]);	}	else if (node.contents instanceof SIRSplitter) {	    HashSet ret = new HashSet();	    /*	    if (node.contents.getParent() instanceof SIRFeedbackLoop) {		//add the connection to all the nodes outside of the feedback		if (node.ways > 1) {		    RawBackend.addAll(ret, getDownStreamHelper(node.edges[0]));		    ret.add(node.edges[1]);		}		else 		    ret.add(node.edges[0]);	    }	    */	    for (int i = 0; i < node.ways; i++) {		RawBackend.addAll(ret, getDownStreamHelper(node.edges[i]));	    }	    return ret;	}	Utils.fail("Serious Error in Simulated Annealing");		return null;    }