public override bool Evaluate (State state) {
			string value = LoadValue(_input, _inputSource, state);
			string key = LoadValue(_control, _controlSource, state);

			state.Output[key] = value;
			
			return (true);
		}
		public bool Evaluate (State state) {
			bool result = _conditions.Evaluate(state);
			
			if (result)
				RunActions(_successActions, state);
			else
				RunActions(_failureActions, state);

			return (result);
		}
		public void Run (State state, string ruleId) {
			_ruleSet.Evaluate(state, ruleId);
		}
		public void Run (State state) {
			_ruleSet.Evaluate(state);
		}
		private void RunActions (List<IEvaluator> actions, State state) {
			foreach (IEvaluator action in actions)
				action.Evaluate(state);
		}