public static void join(String i){
		
		if(i.equals(procid)){
			print("You're not the bossman!");
			return;
		}
		
		if(findNode(i,servs) != null){ 
			print("that server already exist");
			return;
		}
		
		String member = null;
		for(Server s : servs){
			if(!listener.isolated.contains(s.procid)){
				member = s.procid;
				break;
			}
		}
		
		if(member == null){
			print("There is no non-isolated member of the system to welcome " + i);
			return;
		}
		
		
		Server serv = new Server(i,freePort++,basePort, false);
		servs.add(serv);
		portLookUp.put(i, freePort-1);
		ConcurrentHashMap<String, Boolean> buddys = new ConcurrentHashMap<String, Boolean>();
		
		for(Server s : servs){
			buddys.put(s.procid, true);
		}
		for(Client c : clients){
			buddys.put(c.procid, true);
		}
		for( Object o : network.values()){
			ConcurrentHashMap<String, Boolean> pam = (ConcurrentHashMap<String, Boolean>)o;
			pam.put(i, true);
		}
		network.put(i, buddys);
		
		serv.start();
		
		EditMembershipMessage m = new EditMembershipMessage(procid, i, true);
		
		sendMsg(member, m);
	}