public void send(String groupName, Message message) {
		
		message.setSeqNum(this.groupSpg.get(groupName));
		this.groupRpg.groups.get(groupName).put(this.localHostName, this.groupSpg.get(groupName));
		this.groupSpg.put(groupName, this.groupSpg.get(groupName) + 1);
		
		//this.messagePasser.getTimeStamp().addClock();
		
		// update local group vector clock
		this.groupRpg.getClockGroup().get(groupName).addClock();
		
		// get local group vector clock's copy
		Clock clockForThisGroup = this.groupRpg.getClockGroup().get(groupName).deepCopy();
		

		for(String mem : this.groupRpg.groups.get(groupName).keySet()){
			if(!mem.equals(this.localHostName)){
				message.setDest(mem);
				MulticastMessage multicastMsg = new MulticastMessage(message, groupName, this.messagePasser.getTimeStamp(),
						new Hashtable<String, Integer>(this.groupRpg.groups.get(groupName)), 
						clockForThisGroup);
				
				this.sentQueue.get(groupName).put(multicastMsg.getSeqNum(), multicastMsg);
				this.messagePasser.send(multicastMsg);
			}
		}
	}