private void sendColorMessage(Color c, Node to) {
		S4Message msg = new S4Message();
		msg.color = c;
		if(Tools.isSimulationInAsynchroneMode()) {
			// sending the messages directly is OK in async mode
			if(to != null) {
				send(msg, to);
			} else {
				broadcast(msg);
			}
		} else {
			// In Synchronous mode, a node is only allowed to send messages during the 
			// execution of its step. We can easily schedule to send this message during the
			// next step by setting a timer. The MessageTimer from the default project already
			// implements the desired functionality.
			MessageTimer t;
			if(to != null) {
				t = new MessageTimer(msg, to); // unicast
			} else {
				t = new MessageTimer(msg); // multicast
			}
			t.startRelative(Tools.getRandomNumberGenerator().nextDouble(), this);
		}
	}