private void replace(Node seNode,HashSet<String> names,HashSet<Integer> excludedIds,Associator assoc){
		
		Iterator<String> it = names.iterator();
		String seName = seNode.getName();
		SynSE oldSE = null;
		SynSE se = ses.get(seName);
	
		while(it.hasNext()){
			String name = it.next();
			
			while(replacedSEs.containsKey(name)){
				name = replacedSEs.get(name);
			}
		
			for(Map.Entry<Integer, Path> en : this.paths.entrySet()){
				
				if(excludedIds.contains(en.getKey())){
					continue;
				}
				Path path = en.getValue();
				LinkedList<Node> newNodes = new LinkedList<Node>();
				LinkedList<Node> oldNodes = path.getNodes();
				Iterator<Node> itP = oldNodes.iterator();
				boolean changed = false;
		
				while(itP.hasNext()){
					Node node = itP.next();
					String nodeName = node.getName();
					
					if(nodeName.equals(name)){
						newNodes.add(seNode);
						changed = true;
					}
					else{
						newNodes.add(node);
					}
				}
				
				if(changed){
					path.setNodes(newNodes);
				}
			}
			
			
			
			if(ses.containsKey(name)){
				oldSE = ses.get(name);
				HashSet<String> seMember = oldSE.getMembers();
				Iterator<String> memberIt = seMember.iterator();
				se.add(oldSE);
			
				while(memberIt.hasNext()){
					String member = memberIt.next();
					inSE.put(member,seName);
				}
				
				this.ses.remove(name);
				this.replacedSEs.put(name,seName);
					
			}
		}
	}