public void message(Bead message) {
        int time = ((IntegerBead)message).getInt();
        if(mod != Integer.MAX_VALUE) time = time % (mod * mult);            
        for(int index : events.keySet()) {
            if(index * mult == time) {
            	currentValue = events.get(index);
            	if(listener != null) {
	            	if(listener.isDeleted()) {
	            		stop();
	            	} else {
	            		listener.message(this);
	            	}
            	}
                break;
            }
        }
    }