public void broadcastMessage(OSCMessage message){
    boolean test;
    // for each improviser, create a new threa to send the message to
    // that improviser.  the thread shoould be passed a reference to
    // the improviser. If the improviser is dead then the thread should set it to alive = false;
    for (Improviser i : improvisers) {
      if (!i.isDead()) {
	System.out.println("Conductor: Sending message "+message.getName()+" to "+i.toString());
	test = i.sendPacket(message);
	// special behaviour for 'change' - resets the counters
	if (message.getName().equals("/change")) {
	  i.resetMessageCounts();
	}

	if (test) {
	  System.out.println("Conductor: message sending succeeded");
	}
	else {
	  System.out.println("Conductor: message sending failed - removing client! ");
	  // flag it for removal
	  i.setDead();
	}
      }
    }
    // killing them kills the messagesending thread for some reason ....
    // commenting this out for now.
//     for (Improviser i : improvisers) {
//       if (i.isDead()) {
// 	improvisers.remove(i);
//       }
//     }
    // now 
  }