Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/AlgorithmOperator.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/AlgorithmOperator.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/AlgorithmOperator.cs	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/Assigner.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/Assigner.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/Assigner.cs	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/CheckedMultiOperator.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/CheckedMultiOperator.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/CheckedMultiOperator.cs	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -20,4 +20,7 @@
 #endregion
 
+using System;
+using System.Collections.Generic;
+using System.Linq;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -51,4 +54,26 @@
       Operators = new CheckedItemList<T>();
     }
+
+    public override void CollectParameterValues(IDictionary<string, IItem> values) {
+      foreach (var param in Parameters.OfType<IValueParameter>().Except(OperatorParameters)) {
+        var children = GetCollectedValues(param);
+        foreach (var c in children) {
+          if (String.IsNullOrEmpty(c.Key))
+            values.Add(param.Name, c.Value);
+          else values.Add(param.Name + "." + c.Key, c.Value);
+        }
+      }
+      foreach (var opParam in OperatorParameters) {
+        var op = opParam.Value;
+        var @checked = Operators.ItemChecked(op);
+        if (!@checked) continue;
+        var children = GetCollectedValues(opParam);
+        foreach (var c in children) {
+          if (String.IsNullOrEmpty(c.Key))
+            values.Add(opParam.Name, c.Value);
+          else values.Add(opParam.Name + "." + c.Key, c.Value);
+        }
+      }
+    }
   }
 }
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/CombinedOperator.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/CombinedOperator.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/CombinedOperator.cs	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/Comparator.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/Comparator.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/Comparator.cs	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/ConditionalBranch.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/ConditionalBranch.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/ConditionalBranch.cs	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/DataReducer.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/DataReducer.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/DataReducer.cs	(revision 11202)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -69,15 +69,18 @@
     public override IOperation Apply() {
       var values = ParameterToReduce.ActualValue;
-      if (values.Count() > 0) {
-        if (values.All(x => typeof(IntValue).IsAssignableFrom(x.GetType()))) {
-          CalculateResult(values.OfType<IntValue>().Select(x => x.Value), values.First().GetType());
-        } else if (values.All(x => typeof(DoubleValue).IsAssignableFrom(x.GetType()))) {
-          CalculateResult(values.OfType<DoubleValue>().Select(x => x.Value), values.First().GetType());
-        } else if (values.All(x => typeof(TimeSpanValue).IsAssignableFrom(x.GetType()))) {
-          CalculateResult(values.OfType<TimeSpanValue>().Select(x => x.Value), values.First().GetType());
-        } else {
-          throw new ArgumentException(string.Format("Type {0} is not supported by the DataReducer.", values.First().GetType()));
-        }
-      }
+      if (!values.Any()) return base.Apply();
+
+      if (values.All(x => x is IntValue)) {
+        CalculateResult(values.OfType<IntValue>().Select(x => x.Value), values.First().GetType());
+      } else if (values.All(x => x is DoubleValue)) {
+        CalculateResult(values.OfType<DoubleValue>().Select(x => x.Value), values.First().GetType());
+      } else if (values.All(x => x is TimeSpanValue)) {
+        CalculateResult(values.OfType<TimeSpanValue>().Select(x => x.Value), values.First().GetType());
+      } else if (values.All(x => x is BoolValue)) {
+        CalculateResult(values.OfType<BoolValue>().Select(x => x.Value), values.First().GetType());
+      } else {
+        throw new ArgumentException(string.Format("Type {0} is not supported by the DataReducer.", values.First().GetType()));
+      }
+
       return base.Apply();
     }
@@ -246,4 +249,29 @@
         case ReductionOperations.Assign:
           target = InitializeTarget<TimeSpanValue, TimeSpan>(targetType, new TimeSpan());
+          target.Value = result;
+          break;
+        default:
+          throw new InvalidOperationException(string.Format("Operation {0} is not supported as TargetOperation for type: {1}.", TargetOperation.Value.Value, targetType));
+      }
+    }
+    #endregion
+    #region bool reduction
+    private void CalculateResult(IEnumerable<bool> values, Type targetType) {
+      bool result;
+      switch (ReductionOperation.Value.Value) {
+        case ReductionOperations.All:
+          result = values.All(x => x);
+          break;
+        case ReductionOperations.Any:
+          result = values.Any(x => x);
+          break;
+        default:
+          throw new InvalidOperationException(string.Format("Operation {0} is not supported as ReductionOperation for type: {1}.", ReductionOperation.Value.Value, targetType));
+      }
+
+      BoolValue target;
+      switch (TargetOperation.Value.Value) {
+        case ReductionOperations.Assign:
+          target = InitializeTarget<BoolValue, bool>(targetType, true);
           target.Value = result;
           break;
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/DoubleCounter.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/DoubleCounter.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/DoubleCounter.cs	(revision 11202)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/EmptyOperator.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/EmptyOperator.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/EmptyOperator.cs	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/HeuristicLab.Operators-3.3.csproj
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/HeuristicLab.Operators-3.3.csproj	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/HeuristicLab.Operators-3.3.csproj	(revision 11202)
@@ -113,4 +113,5 @@
     <Compile Include="CheckedMultiOperator.cs" />
     <Compile Include="CombinedOperator.cs" />
+    <Compile Include="Operator.InstrumentedOperatorWrapper.cs" />
     <None Include="Plugin.cs.frame" />
     <Compile Include="ConditionalBranch.cs" />
@@ -119,4 +120,5 @@
     <Compile Include="AlgorithmOperator.cs" />
     <Compile Include="DataReducer.cs" />
+    <Compile Include="InstrumentedOperator.cs" />
     <Compile Include="LocalRandomCreator.cs" />
     <Compile Include="MultiOperator.cs" />
@@ -126,5 +128,4 @@
     <Compile Include="Plugin.cs" />
     <Compile Include="ReductionOperation.cs" />
-    <Compile Include="ReductionOperations.cs" />
     <Compile Include="ScopeCleaner.cs" />
     <Compile Include="StochasticBranch.cs" />
@@ -221,5 +222,5 @@
   -->
   <PropertyGroup>
-   <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+    <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
 set ProjectDir=$(ProjectDir)
 set SolutionDir=$(SolutionDir)
@@ -228,5 +229,5 @@
 call PreBuildEvent.cmd
 </PreBuildEvent>
-<PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+    <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
 export ProjectDir=$(ProjectDir)
 export SolutionDir=$(SolutionDir)
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/InstrumentedOperator.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/InstrumentedOperator.cs	(revision 11202)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/InstrumentedOperator.cs	(revision 11202)
@@ -0,0 +1,114 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Operators {
+  [Item("InstrumentedOperator", "A operator that can execute pre- and post actions.")]
+  [StorableClass]
+  public abstract class InstrumentedOperator : SingleSuccessorOperator, IInstrumentedOperator {
+    private const string BeforeExecutionOperatorsParameterName = "BeforeExecutionOperators";
+    private const string AfterExecutionOperatorsParameterName = "AfterExecutionOperators";
+
+    private IFixedValueParameter<OperatorList> BeforeExecutionOperatorsParameter {
+      get { return (IFixedValueParameter<OperatorList>)Parameters[BeforeExecutionOperatorsParameterName]; }
+    }
+    private IFixedValueParameter<OperatorList> AfterExecutionOperatorsParameter {
+      get { return (IFixedValueParameter<OperatorList>)Parameters[AfterExecutionOperatorsParameterName]; }
+    }
+
+
+    IEnumerable<IOperator> IInstrumentedOperator.BeforeExecutionOperators { get { return BeforeExecutionOperators; } }
+    public OperatorList BeforeExecutionOperators {
+      get { return BeforeExecutionOperatorsParameter.Value; }
+    }
+    IEnumerable<IOperator> IInstrumentedOperator.AfterExecutionOperators { get { return AfterExecutionOperators; } }
+    public OperatorList AfterExecutionOperators {
+      get { return AfterExecutionOperatorsParameter.Value; }
+    }
+
+    [StorableConstructor]
+    protected InstrumentedOperator(bool deserializing) : base(deserializing) { }
+    protected InstrumentedOperator(InstrumentedOperator original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    protected InstrumentedOperator()
+      : base() {
+      Parameters.Add(new FixedValueParameter<OperatorList>(BeforeExecutionOperatorsParameterName, "Actions that are executed before the execution of the operator", new OperatorList()));
+      Parameters.Add(new FixedValueParameter<OperatorList>(AfterExecutionOperatorsParameterName, "Actions that are executed after the execution of the operator", new OperatorList()));
+      BeforeExecutionOperatorsParameter.Hidden = true;
+      AfterExecutionOperatorsParameter.Hidden = true;
+    }
+
+    [StorableHook(HookType.AfterDeserialization)]
+    private void AfterDeserialization() {
+      // BackwardsCompatibility3.3
+      #region Backwards compatible code, remove with 3.4
+      if (!Parameters.ContainsKey(BeforeExecutionOperatorsParameterName)) {
+        Parameters.Add(new FixedValueParameter<OperatorList>(BeforeExecutionOperatorsParameterName, "Actions that are executed before the execution of the operator", new OperatorList()));
+        BeforeExecutionOperatorsParameter.Hidden = true;
+      }
+      if (!Parameters.ContainsKey(AfterExecutionOperatorsParameterName)) {
+        Parameters.Add(new FixedValueParameter<OperatorList>(AfterExecutionOperatorsParameterName, "Actions that are executed after the execution of the operator", new OperatorList()));
+        AfterExecutionOperatorsParameter.Hidden = true;
+      }
+      #endregion
+    }
+
+    public sealed override IOperation Apply() {
+      //to speed up the execution call instrumented apply directly if no before operators exists
+      if (!BeforeExecutionOperators.Any())
+        return InstrumentedApply();
+
+      //build before operations
+      var opCol = new OperationCollection();
+      foreach (var beforeAction in BeforeExecutionOperators) {
+        var beforeActionOperation = ExecutionContext.CreateChildOperation(beforeAction);
+        opCol.Add(beforeActionOperation);
+      }
+      //build operation for the instrumented apply
+      opCol.Add(CreateInstrumentedOperation(this));
+      return opCol;
+    }
+
+    public virtual IOperation InstrumentedApply() {
+      if (!AfterExecutionOperators.Any()) {
+        if (Successor != null) return ExecutionContext.CreateOperation(Successor);
+        return null;
+      }
+
+      var opCol = new OperationCollection();
+      foreach (var afterAction in AfterExecutionOperators) {
+        var afterActionOperation = ExecutionContext.CreateChildOperation(afterAction);
+        opCol.Add(afterActionOperation);
+      }
+
+      if (Successor != null)
+        opCol.Add(ExecutionContext.CreateOperation(Successor));
+      return opCol;
+    }
+  }
+}
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/IntCounter.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/IntCounter.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/IntCounter.cs	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/LocalRandomCreator.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/LocalRandomCreator.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/LocalRandomCreator.cs	(revision 11202)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/MultiOperator.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/MultiOperator.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/MultiOperator.cs	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -20,4 +20,6 @@
 #endregion
 
+using System;
+using System.Collections.Generic;
 using HeuristicLab.Collections;
 using HeuristicLab.Common;
@@ -25,6 +27,4 @@
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using System;
-using System.Collections.Generic;
 
 namespace HeuristicLab.Operators {
@@ -34,6 +34,7 @@
   [Item("MultiOperator", "A base class for operators which apply arbitrary many other operators of a specific type.")]
   [StorableClass]
-  public abstract class MultiOperator<T> : SingleSuccessorOperator, IMultiOperator<T> where T : class, IOperator {
+  public abstract class MultiOperator<T> : InstrumentedOperator, IMultiOperator<T> where T : class, IOperator {
     private List<IValueParameter<T>> operatorParameters;
+    protected IEnumerable<IValueParameter<T>> OperatorParameters { get { return operatorParameters; } }
 
     [Storable]
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/Operator.InstrumentedOperatorWrapper.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/Operator.InstrumentedOperatorWrapper.cs	(revision 11202)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/Operator.InstrumentedOperatorWrapper.cs	(revision 11202)
@@ -0,0 +1,86 @@
+﻿#region License Information
+
+/* HeuristicLab
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#endregion
+
+using System;
+using System.Linq;
+using System.Threading;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.PluginInfrastructure;
+using ExecutionContext = HeuristicLab.Core.ExecutionContext;
+
+namespace HeuristicLab.Operators {
+  public abstract partial class Operator {
+    internal static IOperation CreateInstrumentedOperation(InstrumentedOperator instrumentedOperator) {
+      var wrapper = new InstrumentedOperatorWrapper(instrumentedOperator);
+      return instrumentedOperator.ExecutionContext.CreateOperation(wrapper);
+    }
+
+    [StorableClass]
+    [NonDiscoverableType]
+    private class InstrumentedOperatorWrapper : Operator {
+      [Storable]
+      private readonly InstrumentedOperator instrumentedOperator;
+
+      [StorableConstructor]
+      private InstrumentedOperatorWrapper(bool deserializing) : base(deserializing) { }
+
+      private InstrumentedOperatorWrapper(InstrumentedOperatorWrapper original, Cloner cloner)
+        : base(original, cloner) {
+        instrumentedOperator = cloner.Clone(original.instrumentedOperator);
+      }
+
+      public override IDeepCloneable Clone(Cloner cloner) {
+        return new InstrumentedOperatorWrapper(this, cloner);
+      }
+
+      public InstrumentedOperatorWrapper(InstrumentedOperator instrumentedOperator)
+        : base() {
+        this.instrumentedOperator = instrumentedOperator;
+      }
+
+      public override IOperation Apply() {
+        throw new NotSupportedException("InstrumentedOperatorWrapper is not executeable.");
+      }
+
+      public override IOperation Execute(IExecutionContext context, CancellationToken cancellationToken) {
+        try {
+          //create new executionContext for the instrumented operation to account for parameter lookup and name translation
+          var executionContext = new ExecutionContext(context.Parent, instrumentedOperator, context.Scope);
+          instrumentedOperator.ExecutionContext = executionContext;
+          instrumentedOperator.cancellationToken = cancellationToken;
+          foreach (ILookupParameter param in instrumentedOperator.Parameters.OfType<ILookupParameter>())
+            param.ExecutionContext = executionContext;
+          IOperation next = instrumentedOperator.InstrumentedApply();
+          return next;
+        }
+        finally {
+          foreach (ILookupParameter param in instrumentedOperator.Parameters.OfType<ILookupParameter>())
+            param.ExecutionContext = null;
+          instrumentedOperator.ExecutionContext = null;
+        }
+      }
+    }
+  }
+}
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/Operator.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/Operator.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/Operator.cs	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -34,5 +34,5 @@
   [Item("Operator", "Base class for operators.")]
   [StorableClass]
-  public abstract class Operator : ParameterizedNamedItem, IOperator, IStatefulItem {
+  public abstract partial class Operator : ParameterizedNamedItem, IOperator, IStatefulItem {
     public static new Image StaticItemImage {
       get { return HeuristicLab.Common.Resources.VSImageLibrary.Method; }
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/Placeholder.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/Placeholder.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/Placeholder.cs	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/Plugin.cs.frame
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/Plugin.cs.frame	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/Plugin.cs.frame	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -26,5 +26,5 @@
   /// Plugin class for HeuristicLab.Operators plugin.
   /// </summary>
-  [Plugin("HeuristicLab.Operators", "3.3.7.$WCREV$")]
+  [Plugin("HeuristicLab.Operators", "3.3.10.$WCREV$")]
   [PluginFile("HeuristicLab.Operators-3.3.dll", PluginFileType.Assembly)]
   [PluginDependency("HeuristicLab.Collections", "3.3")]
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/Properties/AssemblyInfo.cs.frame
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/Properties/AssemblyInfo.cs.frame	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/Properties/AssemblyInfo.cs.frame	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -32,5 +32,5 @@
 [assembly: AssemblyCompany("")]
 [assembly: AssemblyProduct("HeuristicLab")]
-[assembly: AssemblyCopyright("(c) 2002-2012 HEAL")]
+[assembly: AssemblyCopyright("(c) 2002-2014 HEAL")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
@@ -54,3 +54,3 @@
 // by using the '*' as shown below:
 [assembly: AssemblyVersion("3.3.0.0")]
-[assembly: AssemblyFileVersion("3.3.7.$WCREV$")]
+[assembly: AssemblyFileVersion("3.3.10.$WCREV$")]
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/ReductionOperation.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/ReductionOperation.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/ReductionOperation.cs	(revision 11202)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -27,4 +27,16 @@
 
 namespace HeuristicLab.Operators {
+  public enum ReductionOperations {
+    Sum,
+    Product,
+    Count,
+    Min,
+    Max,
+    Avg,
+    Assign,
+    All,
+    Any
+  }
+
   [Item("ReductionOperation", "Represents a certain type of reduction operation.")]
   [StorableClass]
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/ReductionOperations.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/ReductionOperations.cs	(revision 9522)
+++ 	(revision )
@@ -1,32 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-namespace HeuristicLab.Operators {
-  public enum ReductionOperations {
-    Sum,
-    Product,
-    Count,
-    Min,
-    Max,
-    Avg,
-    Assign
-  }
-}
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/ScopeCleaner.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/ScopeCleaner.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/ScopeCleaner.cs	(revision 11202)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SingleSuccessorOperator.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SingleSuccessorOperator.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SingleSuccessorOperator.cs	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/StochasticBranch.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/StochasticBranch.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/StochasticBranch.cs	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/StochasticMultiBranch.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/StochasticMultiBranch.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/StochasticMultiBranch.cs	(revision 11202)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -132,5 +132,5 @@
     /// or all selected operators have zero probabitlity.</exception>
     /// <returns>A new operation with the operator that was selected followed by the current operator's successor.</returns>
-    public override IOperation Apply() {
+    public override IOperation InstrumentedApply() {
       IRandom random = RandomParameter.ActualValue;
       DoubleArray probabilities = ProbabilitiesParameter.ActualValue;
@@ -156,5 +156,5 @@
         }
       }
-      OperationCollection next = new OperationCollection(base.Apply());
+      OperationCollection next = new OperationCollection(base.InstrumentedApply());
       if (successor != null) {
         if (TraceSelectedOperatorParameter.Value.Value)
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SubScopesCloner.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SubScopesCloner.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SubScopesCloner.cs	(revision 11202)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SubScopesCounter.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SubScopesCounter.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SubScopesCounter.cs	(revision 11202)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SubScopesCreator.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SubScopesCreator.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SubScopesCreator.cs	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SubScopesMixer.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SubScopesMixer.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SubScopesMixer.cs	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SubScopesProcessor.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SubScopesProcessor.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SubScopesProcessor.cs	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -67,7 +67,7 @@
     }
 
-    public override IOperation Apply() {
+    public override IOperation InstrumentedApply() {
       List<IScope> scopes = GetScopesOnLevel(ExecutionContext.Scope, Depth.Value).ToList();
-      OperationCollection next = new OperationCollection(base.Apply());
+      OperationCollection next = new OperationCollection(base.InstrumentedApply());
       if (scopes.Count != Operators.Count)
         throw new ArgumentException("The number of operators doesn't match the number of sub-scopes at depth " + Depth.Value);
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SubScopesRemover.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SubScopesRemover.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SubScopesRemover.cs	(revision 11202)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SubScopesSorter.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SubScopesSorter.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/SubScopesSorter.cs	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/UniformSubScopesProcessor.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/UniformSubScopesProcessor.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/UniformSubScopesProcessor.cs	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/ValuesCollector.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/ValuesCollector.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/ValuesCollector.cs	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/VariableCreator.cs
===================================================================
--- branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/VariableCreator.cs	(revision 9522)
+++ branches/HiveStatistics/sources/HeuristicLab.Operators/3.3/VariableCreator.cs	(revision 11202)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
