public VitalsBehavior RemoveBehaviorContaining(string name)
    {
        foreach (VitalsBehavior behavior in behaviors)
        {
            if (behavior.name.ToLower().Contains (name.ToLower()))
            {
                behaviors.Remove(behavior);
				VitalsBehaviorLogItem logItem = new VitalsBehaviorLogItem(Time.time,"REMOVE:"+this.name);
				LogMgr.GetInstance ().GetCurrent().Add (logItem);
                return behavior;
            }
        }
		return null;
    }
    public VitalsBehavior AddBehavior(VitalsBehavior behavior)
    {
        if (!behavior.stackable && ExistInBehaviors(behavior.name))
            return null;
		actionString += "Add "+behavior.name+":";
		VitalsBehaviorLogItem logItem = new VitalsBehaviorLogItem(Time.time,"ADD:"+this.name);
		LogMgr.GetInstance ().GetCurrent().Add (logItem);
		if (!addingByTrigger && behavior.triggered != null && behavior.triggered != ""){
			// emit the 'triggered' message if it wasn't the cause of this add
			InteractStatusMsg msg = new InteractStatusMsg( behavior.triggered );
			sendingTrigger = true; // flag so we don't respond to our own message
            Brain.GetInstance().PutMessage(msg);
			sendingTrigger = false;
		}
		
		VitalsBehavior newBehavior = behavior.Copy().Init(patient);
        behaviors.Add(newBehavior);
		return newBehavior;
    }
    public bool RemoveBehavior(string name)
    {
        foreach (VitalsBehavior behavior in behaviors)
        {
            if (behavior.name.ToLower() == name.ToLower())
            {
				actionString += "Rem "+behavior.name+":";
                behaviors.Remove(behavior);
				VitalsBehaviorLogItem logItem = new VitalsBehaviorLogItem(Time.time,"REMOVE:"+this.name);
				LogMgr.GetInstance ().GetCurrent().Add (logItem);
                return true;
            }
        }
		return false;
    }
    public VitalsBehavior Init(Patient patient)
    {
        switch (type)
        {
            case Type.absolute:
                InitAbsolute(HR, BPSYS, BPDIA, SP, TEMP, RESP);
                break;
            case Type.range:
                InitRange(timeOfEffect, HR, BPSYS, BPDIA, SP, TEMP, RESP);
                break;
            case Type.target:
                InitTarget(patient, timeOfEffect, HR, BPSYS, BPDIA, SP, TEMP, RESP );
                break;
        }
        InitStop(STOP_HR, STOP_BPSYS, STOP_BPDIA, STOP_SP, TEMP, RESP);
		if (heartbeatType != null && heartbeatType != "")
			patient.HeartbeatType = heartbeatType;
		this.justAdded = true;
		VitalsBehaviorLogItem logItem = new VitalsBehaviorLogItem(Time.time,"ADD:"+this.name);
		LogMgr.GetInstance ().GetCurrent().Add (logItem);
        return this;
    }