Index: /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.LocationRouting/3.3/LrpNetwork1.cs
===================================================================
--- /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.LocationRouting/3.3/LrpNetwork1.cs	(revision 14627)
+++ /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.LocationRouting/3.3/LrpNetwork1.cs	(revision 14628)
@@ -26,4 +26,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
+using HeuristicLab.Encodings.RealVectorEncoding;
 using HeuristicLab.Optimization;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -50,6 +51,5 @@
 
       var cmaes = new CMAEvolutionStrategy();
-      var vp = new VariegationProblem();
-      vp.SetMaximization(false);
+      var vp = new MinimizationVariegationProblem<RealVectorEncoding>();
       cmaes.Problem = vp;
       cmaes.MaximumGenerations = 80;
Index: /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.LocationRouting/3.3/LrpNetwork2.cs
===================================================================
--- /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.LocationRouting/3.3/LrpNetwork2.cs	(revision 14627)
+++ /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.LocationRouting/3.3/LrpNetwork2.cs	(revision 14628)
@@ -26,4 +26,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
+using HeuristicLab.Encodings.RealVectorEncoding;
 using HeuristicLab.Optimization;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -50,6 +51,5 @@
 
       var cmaes = new CMAEvolutionStrategy();
-      var vp = new VariegationProblem();
-      vp.SetMaximization(false);
+      var vp = new MinimizationVariegationProblem<RealVectorEncoding>();
       cmaes.Problem = vp;
       cmaes.MaximumGenerations = 80;
Index: /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.LocationRouting/3.3/LrpOrchestratorNode.cs
===================================================================
--- /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.LocationRouting/3.3/LrpOrchestratorNode.cs	(revision 14627)
+++ /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.LocationRouting/3.3/LrpOrchestratorNode.cs	(revision 14628)
@@ -50,8 +50,9 @@
     protected const string FlpSolverName = "FlpSolver";
     protected const string VrpSolverName = "VrpSolver";
+    protected const string OrchestrationPortNameSuffix = "OrchestrationPort";
+    protected const string EvaluationPortNameSuffix = "EvaluationPort";
     #endregion
 
     protected CancellationTokenSource cts;
-    protected ResultCollection flpResults, vrpResults;
 
     [Storable]
@@ -309,10 +310,5 @@
 
     #region FlpSolver Message Handling
-    protected virtual void FlpSolverOrchestrationPortMessage(IMessage message) {
-      var results = (ResultCollection)message["Results"];
-      if (results.ContainsKey("Best Solution")) {
-        flpResults = results;
-      }
-    }
+    protected virtual void FlpSolverOrchestrationPortMessage(IMessage message) { }
 
     protected virtual void FlpSolverEvaluationPortMessage(IMessage message) { }
@@ -320,10 +316,5 @@
 
     #region VrpSolver Message Handling
-    protected virtual void VrpSolverOrchestrationPortMessage(IMessage message) {
-      var results = (ResultCollection)message["Results"];
-      if (results.ContainsKey("Best valid VRP Solution")) {
-        vrpResults = results;
-      }
-    }
+    protected virtual void VrpSolverOrchestrationPortMessage(IMessage message) { }
 
     private void VrpSolverEvaluationPortMessage(IMessage message) { }
Index: /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.LocationRouting/3.3/LrpOrchestratorNode1.cs
===================================================================
--- /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.LocationRouting/3.3/LrpOrchestratorNode1.cs	(revision 14627)
+++ /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.LocationRouting/3.3/LrpOrchestratorNode1.cs	(revision 14628)
@@ -43,8 +43,8 @@
     public LrpOrchestratorNode1() : this("LrpOrchestratorNode1") { }
     public LrpOrchestratorNode1(string name) : base(name) {
-      MetaSolverOrchestrationPort = CreateOrchestrationPort<VariegationProblem>(MetaSolverName);
-      MetaSolverEvaluationPort = CreateEvaluationPort<RealVector>(MetaSolverName, "RealVector", "Quality");
-      FlpSolverOrchestrationPort = CreateOrchestrationPort<FacilityLocationProblem>(FlpSolverName);
-      VrpSolverOrchestrationPort = CreateOrchestrationPort<VehicleRoutingProblem>(VrpSolverName);
+      MetaSolverOrchestrationPort = CreateOrchestrationPort<MinimizationVariegationProblem<RealVectorEncoding>>(MetaSolverName + OrchestrationPortNameSuffix);
+      MetaSolverEvaluationPort = CreateEvaluationPort<RealVector>(MetaSolverName + EvaluationPortNameSuffix, "RealVector", "Quality");
+      FlpSolverOrchestrationPort = CreateOrchestrationPort<FacilityLocationProblem>(FlpSolverName + OrchestrationPortNameSuffix);
+      VrpSolverOrchestrationPort = CreateOrchestrationPort<VehicleRoutingProblem>(VrpSolverName + OrchestrationPortNameSuffix);
     }
 
@@ -60,5 +60,5 @@
       if (clearRuns) msgFlags |= OrchestrationMessage.ClearRuns;
       metaMsg["OrchestrationMessage"] = new EnumValue<OrchestrationMessage>(msgFlags);
-      var problem = new VariegationProblem();
+      var problem = new MinimizationVariegationProblem<RealVectorEncoding>();
       problem.Encoding.Length = nrOfCustomers * 2;
       problem.Encoding.Bounds = new DoubleMatrix(new[,] { { -1.0, 1.0 } });
@@ -85,4 +85,5 @@
       cts.Token.ThrowIfCancellationRequested();
 
+      var flpResults = (ResultCollection)flpMsg["Results"];
       var bestFlpSolution = (IntegerVector)flpResults["Best Solution"].Value;
       var flpSolution = FlpParameter.Value.GetSolution(bestFlpSolution);
@@ -109,4 +110,5 @@
         cts.Token.ThrowIfCancellationRequested();
 
+        var vrpResults = (ResultCollection)vrpMsg["Results"];
         var bestVrpSolution = (VRPSolution)vrpResults["Best valid VRP Solution"].Value.Clone();
         vrpSolutions.Add(new Result("Depot " + depot.Key, bestVrpSolution));
Index: /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.LocationRouting/3.3/LrpOrchestratorNode2.cs
===================================================================
--- /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.LocationRouting/3.3/LrpOrchestratorNode2.cs	(revision 14627)
+++ /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.LocationRouting/3.3/LrpOrchestratorNode2.cs	(revision 14628)
@@ -43,8 +43,8 @@
     public LrpOrchestratorNode2() : this("LrpOrchestratorNode2") { }
     public LrpOrchestratorNode2(string name) : base(name) {
-      MetaSolverOrchestrationPort = CreateOrchestrationPort<VariegationProblem>(MetaSolverName);
-      MetaSolverEvaluationPort = CreateEvaluationPort<RealVector>(MetaSolverName, "RealVector", "Quality");
-      FlpSolverOrchestrationPort = CreateOrchestrationPort<FacilityLocationProblem>(FlpSolverName);
-      VrpSolverOrchestrationPort = CreateOrchestrationPort<VehicleRoutingProblem>(VrpSolverName);
+      MetaSolverOrchestrationPort = CreateOrchestrationPort<MinimizationVariegationProblem<RealVectorEncoding>>(MetaSolverName + OrchestrationPortNameSuffix);
+      MetaSolverEvaluationPort = CreateEvaluationPort<RealVector>(MetaSolverName + EvaluationPortNameSuffix, "RealVector", "Quality");
+      FlpSolverOrchestrationPort = CreateOrchestrationPort<FacilityLocationProblem>(FlpSolverName + OrchestrationPortNameSuffix);
+      VrpSolverOrchestrationPort = CreateOrchestrationPort<VehicleRoutingProblem>(VrpSolverName + OrchestrationPortNameSuffix);
     }
 
@@ -60,5 +60,5 @@
       if (clearRuns) msgFlags |= OrchestrationMessage.ClearRuns;
       metaMsg["OrchestrationMessage"] = new EnumValue<OrchestrationMessage>(msgFlags);
-      var problem = new VariegationProblem();
+      var problem = new MinimizationVariegationProblem<RealVectorEncoding>();
       problem.Encoding.Length = nrOfDepots * 2;
       problem.Encoding.Bounds = new DoubleMatrix(new[,] { { -1.0, 1.0 } });
@@ -85,4 +85,5 @@
       cts.Token.ThrowIfCancellationRequested();
 
+      var flpResults = (ResultCollection)flpMsg["Results"];
       var bestFlpSolution = (IntegerVector)flpResults["Best Solution"].Value;
       var flpSolution = FlpParameter.Value.GetSolution(bestFlpSolution);
@@ -109,4 +110,5 @@
         cts.Token.ThrowIfCancellationRequested();
 
+        var vrpResults = (ResultCollection)vrpMsg["Results"];
         var bestVrpSolution = (VRPSolution)vrpResults["Best valid VRP Solution"].Value.Clone();
         vrpSolutions.Add(new Result("Depot " + depot.Key, bestVrpSolution));
Index: /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.MachineLearning/HeuristicLab.Networks.IntegratedOptimization.MachineLearning-3.3.csproj
===================================================================
--- /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.MachineLearning/HeuristicLab.Networks.IntegratedOptimization.MachineLearning-3.3.csproj	(revision 14627)
+++ /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.MachineLearning/HeuristicLab.Networks.IntegratedOptimization.MachineLearning-3.3.csproj	(revision 14628)
@@ -111,9 +111,4 @@
       <Private>False</Private>
     </Reference>
-    <Reference Include="HeuristicLab.Networks.IntegratedOptimization-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Networks.IntegratedOptimization-3.3.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
     <Reference Include="HeuristicLab.Operators-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
@@ -189,5 +184,12 @@
     <None Include="HeuristicLab.snk" />
     <None Include="Plugin.cs.frame" />
-    <None Include="Properties\AssemblyInfo.frame" />
+    <None Include="Properties\AssemblyInfo.cs.frame" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\HeuristicLab.Networks.IntegratedOptimization\3.3\HeuristicLab.Networks.IntegratedOptimization-3.3.csproj">
+      <Project>{b6263d3e-dcaf-42b0-a440-3deef1ff0429}</Project>
+      <Name>HeuristicLab.Networks.IntegratedOptimization-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Index: /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.MachineLearning/Properties/AssemblyInfo.cs.frame
===================================================================
--- /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.MachineLearning/Properties/AssemblyInfo.cs.frame	(revision 14628)
+++ /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.MachineLearning/Properties/AssemblyInfo.cs.frame	(revision 14628)
@@ -0,0 +1,56 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2017 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.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.Networks.IntegratedOptimization.MachineLearning")]
+[assembly: AssemblyDescription("Optimization Networks for integrated machine learning problems.")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab")]
+[assembly: AssemblyCopyright("(c) 2002-2017 HEAL")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("9497c2aa-515e-411b-a0af-ce439e6cf326")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("3.3.0.0")]
+[assembly: AssemblyFileVersion("3.3.12.$WCREV$")]
Index: anches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.MachineLearning/Properties/AssemblyInfo.frame
===================================================================
--- /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.MachineLearning/Properties/AssemblyInfo.frame	(revision 14627)
+++ 	(revision )
@@ -1,56 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2016 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.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("HeuristicLab.Networks.IntegratedOptimization.MachineLearning")]
-[assembly: AssemblyDescription("Optimization Networks for integrated machine learning problems.")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("HeuristicLab")]
-[assembly: AssemblyCopyright("(c) 2002-2017 HEAL")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("9497c2aa-515e-411b-a0af-ce439e6cf326")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Revision and Build Numbers 
-// by using the '*' as shown below:
-[assembly: AssemblyVersion("3.3.0.0")]
-[assembly: AssemblyFileVersion("3.3.12.$WCREV$")]
Index: /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpNetwork1.cs
===================================================================
--- /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpNetwork1.cs	(revision 14627)
+++ /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpNetwork1.cs	(revision 14628)
@@ -25,4 +25,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
+using HeuristicLab.Encodings.RealVectorEncoding;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -43,5 +44,5 @@
 
       var cmaes = new CMAEvolutionStrategy();
-      cmaes.Problem = new VariegationProblem();
+      cmaes.Problem = new MaximizationVariegationProblem<RealVectorEncoding>();
       cmaes.MaximumGenerations = 80;
       MetaSolver.Algorithm = cmaes;
Index: /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpNetwork2.cs
===================================================================
--- /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpNetwork2.cs	(revision 14627)
+++ /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpNetwork2.cs	(revision 14628)
@@ -25,4 +25,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
+using HeuristicLab.Encodings.RealVectorEncoding;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -43,5 +44,5 @@
 
       var cmaes = new CMAEvolutionStrategy();
-      cmaes.Problem = new VariegationProblem();
+      cmaes.Problem = new MaximizationVariegationProblem<RealVectorEncoding>();
       cmaes.MaximumGenerations = 80;
       MetaSolver.Algorithm = cmaes;
Index: /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpNetwork3.cs
===================================================================
--- /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpNetwork3.cs	(revision 14627)
+++ /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpNetwork3.cs	(revision 14628)
@@ -25,4 +25,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
+using HeuristicLab.Encodings.RealVectorEncoding;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -43,5 +44,5 @@
 
       var cmaes = new CMAEvolutionStrategy();
-      cmaes.Problem = new VariegationProblem();
+      cmaes.Problem = new MaximizationVariegationProblem<RealVectorEncoding>();
       cmaes.MaximumGenerations = 80;
       MetaSolver.Algorithm = cmaes;
Index: /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpOrchestratorNode.cs
===================================================================
--- /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpOrchestratorNode.cs	(revision 14627)
+++ /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpOrchestratorNode.cs	(revision 14628)
@@ -29,5 +29,4 @@
 using HeuristicLab.Encodings.RealVectorEncoding;
 using HeuristicLab.Operators;
-using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -49,8 +48,9 @@
     protected const string TspSolverName = "TspSolver";
     protected const string KspSolverName = "KspSolver";
+    protected const string OrchestrationPortNameSuffix = "OrchestrationPort";
+    protected const string EvaluationPortNameSuffix = "EvaluationPort";
     #endregion
 
     protected CancellationTokenSource cts;
-    protected ResultCollection tspResults, kspResults;
 
     [Storable]
@@ -319,10 +319,5 @@
 
     #region TspSolver Message Handling
-    protected virtual void TspSolverOrchestrationPortMessage(IMessage message) {
-      var results = (ResultCollection)message["Results"];
-      if (results.ContainsKey("Best TSP Solution")) {
-        tspResults = results;
-      }
-    }
+    protected virtual void TspSolverOrchestrationPortMessage(IMessage message) { }
 
     protected virtual void TspSolverEvaluationPortMessage(IMessage message) { }
@@ -330,10 +325,5 @@
 
     #region KspSolver Message Handling
-    protected virtual void KspSolverOrchestrationPortMessage(IMessage message) {
-      var results = (ResultCollection)message["Results"];
-      if (results.ContainsKey("Best Solution")) {
-        kspResults = results;
-      }
-    }
+    protected virtual void KspSolverOrchestrationPortMessage(IMessage message) { }
 
     private void KspSolverEvaluationPortMessage(IMessage message) { }
Index: /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpOrchestratorNode1.cs
===================================================================
--- /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpOrchestratorNode1.cs	(revision 14627)
+++ /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpOrchestratorNode1.cs	(revision 14628)
@@ -43,8 +43,8 @@
     public TtpOrchestratorNode1() : this("TtpOrchestratorNode1") { }
     public TtpOrchestratorNode1(string name) : base(name) {
-      MetaSolverOrchestrationPort = CreateOrchestrationPort<VariegationProblem>(MetaSolverName);
-      MetaSolverEvaluationPort = CreateEvaluationPort<RealVector>(MetaSolverName, "RealVector", "Quality");
-      TspSolverOrchestrationPort = CreateOrchestrationPort<TourProfitProblem>(TspSolverName);
-      KspSolverOrchestrationPort = CreateOrchestrationPort<BinaryKnapsackProblem>(KspSolverName);
+      MetaSolverOrchestrationPort = CreateOrchestrationPort<MaximizationVariegationProblem<RealVectorEncoding>>(MetaSolverName + OrchestrationPortNameSuffix);
+      MetaSolverEvaluationPort = CreateEvaluationPort<RealVector>(MetaSolverName + EvaluationPortNameSuffix, "RealVector", "Quality");
+      TspSolverOrchestrationPort = CreateOrchestrationPort<TourProfitProblem>(TspSolverName + OrchestrationPortNameSuffix);
+      KspSolverOrchestrationPort = CreateOrchestrationPort<BinaryKnapsackProblem>(KspSolverName + OrchestrationPortNameSuffix);
     }
 
@@ -60,5 +60,5 @@
       if (clearRuns) msgFlags |= OrchestrationMessage.ClearRuns;
       metaMsg["OrchestrationMessage"] = new EnumValue<OrchestrationMessage>(msgFlags);
-      var problem = new VariegationProblem();
+      var problem = new MaximizationVariegationProblem<RealVectorEncoding>();
       problem.Encoding.Length = KspParameter.Value.Length;
       problem.Encoding.Bounds = new DoubleMatrix(new[,] { { -1.0, 1.0 } });
@@ -81,4 +81,5 @@
       cts.Token.ThrowIfCancellationRequested();
 
+      var kspResults = (ResultCollection)kspMsg["Results"];
       var bestKspSolution = (BinaryVector)kspResults["Best Solution"].Value.Clone();
       var kspCapacity = (IntValue)KspParameter.Value.KnapsackCapacity.Clone();
@@ -106,4 +107,5 @@
       cts.Token.ThrowIfCancellationRequested();
 
+      var tspResults = (ResultCollection)tspMsg["Results"];
       var bestTspSolution = (Permutation)tspResults["Best TSP Solution"].Value.Clone();
       var coordinates = (DoubleMatrix)TspParameter.Value.Coordinates.Clone();
Index: /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpOrchestratorNode2.cs
===================================================================
--- /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpOrchestratorNode2.cs	(revision 14627)
+++ /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpOrchestratorNode2.cs	(revision 14628)
@@ -42,8 +42,8 @@
     public TtpOrchestratorNode2() : this("TtpOrchestratorNode2") { }
     public TtpOrchestratorNode2(string name) : base(name) {
-      MetaSolverOrchestrationPort = CreateOrchestrationPort<VariegationProblem>(MetaSolverName);
-      MetaSolverEvaluationPort = CreateEvaluationPort<RealVector>(MetaSolverName, "RealVector", "Quality");
-      TspSolverOrchestrationPort = CreateOrchestrationPort<TravelingSalesmanProblem>(TspSolverName);
-      KspSolverOrchestrationPort = CreateOrchestrationPort<LootProfitProblem>(KspSolverName);
+      MetaSolverOrchestrationPort = CreateOrchestrationPort<MaximizationVariegationProblem<RealVectorEncoding>>(MetaSolverName + OrchestrationPortNameSuffix);
+      MetaSolverEvaluationPort = CreateEvaluationPort<RealVector>(MetaSolverName + EvaluationPortNameSuffix, "RealVector", "Quality");
+      TspSolverOrchestrationPort = CreateOrchestrationPort<TravelingSalesmanProblem>(TspSolverName + OrchestrationPortNameSuffix);
+      KspSolverOrchestrationPort = CreateOrchestrationPort<LootProfitProblem>(KspSolverName + OrchestrationPortNameSuffix);
     }
 
@@ -59,5 +59,5 @@
       if (clearRuns) msgFlags |= OrchestrationMessage.ClearRuns;
       metaMsg["OrchestrationMessage"] = new EnumValue<OrchestrationMessage>(msgFlags);
-      var problem = new VariegationProblem();
+      var problem = new MaximizationVariegationProblem<RealVectorEncoding>();
       problem.Encoding.Length = TspParameter.Value.Coordinates.Rows * 2;
       problem.Encoding.Bounds = new DoubleMatrix(new[,] { { -1.0, 1.0 } });
@@ -82,4 +82,5 @@
       cts.Token.ThrowIfCancellationRequested();
 
+      var tspResults = (ResultCollection)tspMsg["Results"];
       var bestTspSolution = (PathTSPTour)tspResults["Best TSP Solution"].Value.Clone();
       var coordinates = (DoubleMatrix)TspParameter.Value.Coordinates.Clone();
@@ -103,4 +104,5 @@
       cts.Token.ThrowIfCancellationRequested();
 
+      var kspResults = (ResultCollection)kspMsg["Results"];
       var bestKspSolution = (BinaryVector)kspResults["Best Solution"].Value.Clone();
       var kspCapacity = (IntValue)KspParameter.Value.KnapsackCapacity.Clone();
Index: /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpOrchestratorNode3.cs
===================================================================
--- /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpOrchestratorNode3.cs	(revision 14627)
+++ /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpOrchestratorNode3.cs	(revision 14628)
@@ -43,8 +43,8 @@
     public TtpOrchestratorNode3() : this("TtpOrchestratorNode3") { }
     public TtpOrchestratorNode3(string name) : base(name) {
-      MetaSolverOrchestrationPort = CreateOrchestrationPort<VariegationProblem>(MetaSolverName);
-      MetaSolverEvaluationPort = CreateEvaluationPort<RealVector>(MetaSolverName, "RealVector", "Quality");
-      TspSolverOrchestrationPort = CreateOrchestrationPort<TravelingSalesmanProblem>(TspSolverName);
-      KspSolverOrchestrationPort = CreateOrchestrationPort<BinaryKnapsackProblem>(KspSolverName);
+      MetaSolverOrchestrationPort = CreateOrchestrationPort<MaximizationVariegationProblem<RealVectorEncoding>>(MetaSolverName + OrchestrationPortNameSuffix);
+      MetaSolverEvaluationPort = CreateEvaluationPort<RealVector>(MetaSolverName + EvaluationPortNameSuffix, "RealVector", "Quality");
+      TspSolverOrchestrationPort = CreateOrchestrationPort<TravelingSalesmanProblem>(TspSolverName + OrchestrationPortNameSuffix);
+      KspSolverOrchestrationPort = CreateOrchestrationPort<BinaryKnapsackProblem>(KspSolverName + OrchestrationPortNameSuffix);
     }
 
@@ -60,5 +60,5 @@
       if (clearRuns) msgFlags |= OrchestrationMessage.ClearRuns;
       metaMsg["OrchestrationMessage"] = new EnumValue<OrchestrationMessage>(msgFlags);
-      var problem = new VariegationProblem();
+      var problem = new MaximizationVariegationProblem<RealVectorEncoding>();
       problem.Encoding.Length = KspParameter.Value.Length + TspParameter.Value.Coordinates.Rows * 2;
       problem.Encoding.Bounds = new DoubleMatrix(new[,] { { -1.0, 1.0 } });
@@ -84,4 +84,5 @@
       cts.Token.ThrowIfCancellationRequested();
 
+      var kspResults = (ResultCollection)kspMsg["Results"];
       var bestKspSolution = (BinaryVector)kspResults["Best Solution"].Value.Clone();
       var kspCapacity = (IntValue)KspParameter.Value.KnapsackCapacity.Clone();
@@ -115,4 +116,5 @@
       cts.Token.ThrowIfCancellationRequested();
 
+      var tspResults = (ResultCollection)tspMsg["Results"];
       var bestTspSolution = (Permutation)tspResults["Best TSP Solution"].Value.Clone();
       var coordinates = (DoubleMatrix)TspParameter.Value.Coordinates.Clone();
Index: /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/HeuristicLab.Networks.IntegratedOptimization-3.3.csproj
===================================================================
--- /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/HeuristicLab.Networks.IntegratedOptimization-3.3.csproj	(revision 14627)
+++ /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/HeuristicLab.Networks.IntegratedOptimization-3.3.csproj	(revision 14628)
@@ -131,8 +131,9 @@
   <ItemGroup>
     <Compile Include="IOrchestratorNode.cs" />
+    <Compile Include="MaximizationVariegationProblem.cs" />
+    <Compile Include="MinimizationVariegationProblem.cs" />
     <Compile Include="OrchestratedAlgorithmNode.cs" />
     <Compile Include="OrchestrationMessage.cs" />
     <Compile Include="OrchestratorNode.cs" />
-    <Compile Include="VariegationProblem.cs" />
     <None Include="Plugin.cs.frame" />
     <None Include="Properties\AssemblyInfo.cs.frame" />
Index: /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/MaximizationVariegationProblem.cs
===================================================================
--- /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/MaximizationVariegationProblem.cs	(revision 14628)
+++ /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/MaximizationVariegationProblem.cs	(revision 14628)
@@ -0,0 +1,46 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2017 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 HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Optimization;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Networks.IntegratedOptimization {
+  [Item("Maximization Variegation Problem", "")]
+  [StorableClass]
+  public class MaximizationVariegationProblem<TEncoding> : SingleObjectiveBasicProblem<TEncoding> where TEncoding : class, IEncoding {
+    public override bool Maximization {
+      get { return true; }
+    }
+
+    [StorableConstructor]
+    protected MaximizationVariegationProblem(bool deserializing) : base(deserializing) { }
+    protected MaximizationVariegationProblem(MaximizationVariegationProblem<TEncoding> original, Cloner cloner) : base(original, cloner) { }
+    public MaximizationVariegationProblem() : base() { }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new MaximizationVariegationProblem<TEncoding>(this, cloner);
+    }
+
+    public override double Evaluate(Individual individual, IRandom random) { return 0.0; }
+  }
+}
Index: /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/MinimizationVariegationProblem.cs
===================================================================
--- /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/MinimizationVariegationProblem.cs	(revision 14628)
+++ /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/MinimizationVariegationProblem.cs	(revision 14628)
@@ -0,0 +1,46 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2017 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 HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Optimization;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Networks.IntegratedOptimization {
+  [Item("Minimization Variegation Problem", "")]
+  [StorableClass]
+  public class MinimizationVariegationProblem<TEncoding> : SingleObjectiveBasicProblem<TEncoding> where TEncoding : class, IEncoding {
+    public override bool Maximization {
+      get { return false; }
+    }
+
+    [StorableConstructor]
+    protected MinimizationVariegationProblem(bool deserializing) : base(deserializing) { }
+    protected MinimizationVariegationProblem(MinimizationVariegationProblem<TEncoding> original, Cloner cloner) : base(original, cloner) { }
+    public MinimizationVariegationProblem() : base() { }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new MinimizationVariegationProblem<TEncoding>(this, cloner);
+    }
+
+    public override double Evaluate(Individual individual, IRandom random) { return 0.0; }
+  }
+}
Index: /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/OrchestratedAlgorithmNode.cs
===================================================================
--- /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/OrchestratedAlgorithmNode.cs	(revision 14627)
+++ /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/OrchestratedAlgorithmNode.cs	(revision 14628)
@@ -65,12 +65,10 @@
     [StorableConstructor]
     protected OrchestratedAlgorithmNode(bool deserializing) : base(deserializing) { }
-    protected OrchestratedAlgorithmNode(OrchestratedAlgorithmNode original, Cloner cloner)
-      : base(original, cloner) {
+    protected OrchestratedAlgorithmNode(OrchestratedAlgorithmNode original, Cloner cloner) : base(original, cloner) {
       EvalHook = cloner.Clone(original.EvalHook);
       RegisterEvents();
     }
     public OrchestratedAlgorithmNode() : this("OrchestratedAlgorithmNode") { }
-    public OrchestratedAlgorithmNode(string name)
-      : base(name) {
+    public OrchestratedAlgorithmNode(string name) : base(name) {
       var orchestrationPort = new MessagePort(OrchestrationPortName);
       Ports.Add(orchestrationPort);
@@ -97,9 +95,9 @@
     #region Port Events
     private void OrchestrationPort_MessageReceived(object sender, EventArgs<IMessage, CancellationToken> e) {
-      var message = e.Value;
-      var orchestrationMessage = ((EnumValue<OrchestrationMessage>)message["OrchestrationMessage"]).Value;
+      var requestMessage = e.Value;
+      var messageFlags = ((EnumValue<OrchestrationMessage>)requestMessage["OrchestrationMessage"]).Value;
 
       #region Prepare
-      if (orchestrationMessage.HasFlag(OrchestrationMessage.Prepare)) {
+      if (messageFlags.HasFlag(OrchestrationMessage.Prepare)) {
         switch (Algorithm.ExecutionState) {
           case ExecutionState.Prepared:
@@ -110,5 +108,5 @@
               var prob = (IHeuristicOptimizationProblem)problemMsgVal.Value.Clone();
 
-              if (orchestrationMessage.HasFlag(OrchestrationMessage.SetEvalHook)) {
+              if (messageFlags.HasFlag(OrchestrationMessage.SetEvalHook)) {
                 var instEval = prob.Evaluator as InstrumentedOperator;
                 if (instEval != null && EvalHook != null) instEval.AfterExecutionOperators.Add(EvalHook);
@@ -140,5 +138,5 @@
               }
 
-              Algorithm.Prepare(orchestrationMessage.HasFlag(OrchestrationMessage.ClearRuns));
+              Algorithm.Prepare(messageFlags.HasFlag(OrchestrationMessage.ClearRuns));
             }
             break;
@@ -148,5 +146,5 @@
 
       #region Start
-      if (orchestrationMessage.HasFlag(OrchestrationMessage.Start)) {
+      if (messageFlags.HasFlag(OrchestrationMessage.Start)) {
         switch (Algorithm.ExecutionState) {
           case ExecutionState.Prepared:
@@ -175,8 +173,8 @@
 
             if (sendResultMessage) {
-              message["Results"] = (ResultCollection)Algorithm.Results.Clone();
-              var msg = OrchestrationPort.PrepareMessage();
-              msg["Results"] = (ResultCollection)Algorithm.Results.Clone();
-              OrchestrationPort.SendMessage(msg);
+              requestMessage["Results"] = (ResultCollection)Algorithm.Results.Clone();
+              var responseMessage = OrchestrationPort.PrepareMessage();
+              responseMessage["Results"] = (ResultCollection)Algorithm.Results.Clone();
+              OrchestrationPort.SendMessage(responseMessage);
             } else sendResultMessage = true;
             break;
@@ -186,11 +184,10 @@
 
       #region Pause
-      if (orchestrationMessage.HasFlag(OrchestrationMessage.Pause)) {
+      if (messageFlags.HasFlag(OrchestrationMessage.Pause)) {
         if (Algorithm.ExecutionState == ExecutionState.Started) {
           sendResultMessage = false;
           try {
             Algorithm.Pause();
-          }
-          catch (InvalidOperationException) {
+          } catch (InvalidOperationException) {
             // ExecutionState might have changed since we accepted the message
           }
@@ -200,5 +197,5 @@
 
       #region Stop
-      if (orchestrationMessage.HasFlag(OrchestrationMessage.Stop)) {
+      if (messageFlags.HasFlag(OrchestrationMessage.Stop)) {
         switch (Algorithm.ExecutionState) {
           case ExecutionState.Started:
@@ -206,9 +203,7 @@
             try {
               Algorithm.Stop();
-            }
-            catch (InvalidOperationException) {
+            } catch (InvalidOperationException) {
               // ExecutionState might have changed since we accepted the message
-            }
-            catch (NullReferenceException) {
+            } catch (NullReferenceException) {
               // BasicAlgorithm might have stopped since we accepted the message
               // CancellationTokenSource is null in this case
Index: /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/OrchestratorNode.cs
===================================================================
--- /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/OrchestratorNode.cs	(revision 14627)
+++ /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/OrchestratorNode.cs	(revision 14628)
@@ -28,5 +28,4 @@
 using HeuristicLab.Data;
 using HeuristicLab.Optimization;
-using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -35,11 +34,4 @@
   [StorableClass]
   public abstract class OrchestratorNode : Node, IOrchestratorNode {
-    //TODO remove suffixes
-    #region Constants
-    protected const string OrchestrationMessageParameterName = "OrchestrationMessage";
-    protected const string OrchestrationPortNameSuffix = "";
-    protected const string EvaluationPortNameSuffix = "";
-    #endregion
-
     [Storable]
     private ParameterCollection parameters;
@@ -63,6 +55,5 @@
     [StorableConstructor]
     protected OrchestratorNode(bool deserializing) : base(deserializing) { }
-    protected OrchestratorNode(OrchestratorNode original, Cloner cloner)
-      : base(original, cloner) {
+    protected OrchestratorNode(OrchestratorNode original, Cloner cloner) : base(original, cloner) {
       results = cloner.Clone(original.results);
       parameters = cloner.Clone(original.parameters);
@@ -71,23 +62,17 @@
     }
 
-    protected OrchestratorNode()
-      : base("OrchestratorNode") {
+    protected OrchestratorNode() : base("OrchestratorNode") {
       results = new ResultCollection();
       parameters = new ParameterCollection();
-      Parameters.Add(new ValueParameter<EnumValue<OrchestrationMessage>>("OrchestrationMessage", new EnumValue<OrchestrationMessage>()));
       readOnlyParameters = null;
     }
-    protected OrchestratorNode(string name)
-      : base(name) {
+    protected OrchestratorNode(string name) : base(name) {
       results = new ResultCollection();
       parameters = new ParameterCollection();
-      Parameters.Add(new ValueParameter<EnumValue<OrchestrationMessage>>("OrchestrationMessage", new EnumValue<OrchestrationMessage>()));
       readOnlyParameters = null;
     }
-    protected OrchestratorNode(string name, string description)
-      : base(name, description) {
+    protected OrchestratorNode(string name, string description) : base(name, description) {
       results = new ResultCollection();
       parameters = new ParameterCollection();
-      Parameters.Add(new ValueParameter<EnumValue<OrchestrationMessage>>("OrchestrationMessage", new EnumValue<OrchestrationMessage>()));
       readOnlyParameters = null;
     }
@@ -102,6 +87,6 @@
     }
 
-    protected IMessagePort CreateOrchestrationPort<T>(string solverName) where T : class, IProblem {
-      var orchestrationPort = new MessagePort(solverName + OrchestrationPortNameSuffix);
+    protected IMessagePort CreateOrchestrationPort<T>(string portName) where T : class, IProblem {
+      var orchestrationPort = new MessagePort(portName);
       orchestrationPort.Parameters.Add(new PortParameter<EnumValue<OrchestrationMessage>>("OrchestrationMessage") {
         Type = PortParameterType.Output
@@ -116,6 +101,6 @@
     }
 
-    protected IMessagePort CreateEvaluationPort<T>(string solverName, string solutionName, string qualityName) where T : class, IItem {
-      var evaluationPort = new MessagePort(solverName + EvaluationPortNameSuffix);
+    protected IMessagePort CreateEvaluationPort<T>(string portName, string solutionName, string qualityName) where T : class, IItem {
+      var evaluationPort = new MessagePort(portName);
       evaluationPort.Parameters.Add(new PortParameter<T>(solutionName) {
         Type = PortParameterType.Input
Index: anches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/VariegationProblem.cs
===================================================================
--- /branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/VariegationProblem.cs	(revision 14627)
+++ 	(revision )
@@ -1,55 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2017 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 HeuristicLab.Common;
-using HeuristicLab.Core;
-using HeuristicLab.Encodings.RealVectorEncoding;
-using HeuristicLab.Optimization;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Networks.IntegratedOptimization {
-  [Item("Variegation Problem", "Represents a problem whose objective is to optimize problem parameters.")]
-  [Creatable(CreatableAttribute.Categories.Problems, Priority = 999)]
-  [StorableClass]
-  public class VariegationProblem : SingleObjectiveBasicProblem<RealVectorEncoding> {
-    private bool maximization;
-    public override bool Maximization {
-      get { return maximization; }
-    }
-
-    public void SetMaximization(bool value) {
-      maximization = value;
-    }
-
-    [StorableConstructor]
-    protected VariegationProblem(bool deserializing) : base(deserializing) { }
-    protected VariegationProblem(VariegationProblem original, Cloner cloner) : base(original, cloner) { }
-    public VariegationProblem() : base() {
-      Encoding.Length = 5;
-    }
-
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new VariegationProblem(this, cloner);
-    }
-
-    public override double Evaluate(Individual individual, IRandom random) { return 0.0; }
-  }
-}
