Index: /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/HeuristicLab.Problems.ExternalEvaluation-3.4.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/HeuristicLab.Problems.ExternalEvaluation-3.4.csproj	(revision 13182)
+++ /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/HeuristicLab.Problems.ExternalEvaluation-3.4.csproj	(revision 13183)
@@ -135,4 +135,5 @@
     <Compile Include="Drivers\EvaluationTCPChannel.cs" />
     <Compile Include="Interfaces\IExternalEvaluationProblem.cs" />
+    <Compile Include="Interfaces\IMultiObjectiveOptimizationSupport.cs" />
     <Compile Include="MultiObjectiveExternalEvaluationProblem.cs" />
     <Compile Include="ExternalEvaluationProblem.cs" />
@@ -143,7 +144,10 @@
     <Compile Include="Plugin.cs" />
     <Compile Include="Programmable\CompiledOptimizationSupport.cs" />
+    <Compile Include="Programmable\CompiledMultiObjectiveOptimizationSupport.cs" />
     <Compile Include="Programmable\CompiledSingleObjectiveOptimizationSupport.cs" />
+    <Compile Include="Programmable\MultiObjectiveOptimizationSupportScript.cs" />
+    <Compile Include="Programmable\OptimizationSupportScript.cs" />
     <Compile Include="Programmable\SingleObjectiveOptimizationSupportScript.cs" />
-    <Compile Include="Programmable\SingleObjectiveOptimizationSupportScriptException.cs" />
+    <Compile Include="Programmable\OptimizationSupportScriptException.cs" />
     <Compile Include="Programmable\Templates.Designer.cs">
       <AutoGen>True</AutoGen>
Index: /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Interfaces/IMultiObjectiveOptimizationSupport.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Interfaces/IMultiObjectiveOptimizationSupport.cs	(revision 13183)
+++ /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Interfaces/IMultiObjectiveOptimizationSupport.cs	(revision 13183)
@@ -0,0 +1,29 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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.Core;
+using HeuristicLab.Optimization;
+
+namespace HeuristicLab.Problems.ExternalEvaluation {
+  public interface IMultiObjectiveOptimizationSupport {
+    void Analyze(Individual[] individuals, double[][] qualities, ResultCollection results, IRandom random);
+  }
+}
Index: /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/MultiObjectiveExternalEvaluationProblem.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/MultiObjectiveExternalEvaluationProblem.cs	(revision 13182)
+++ /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/MultiObjectiveExternalEvaluationProblem.cs	(revision 13183)
@@ -53,7 +53,7 @@
       get { return (IValueParameter<SolutionMessageBuilder>)Parameters["MessageBuilder"]; }
     }
-    //public IFixedValueParameter<MultiObjectiveOptimizationSupportScript> SupportScriptParameter {
-    //  get { return (IFixedValueParameter<MultiObjectiveOptimizationSupportScript>)Parameters["SupportScript"]; }
-    //}
+    public IFixedValueParameter<MultiObjectiveOptimizationSupportScript> SupportScriptParameter {
+      get { return (IFixedValueParameter<MultiObjectiveOptimizationSupportScript>)Parameters["SupportScript"]; }
+    }
     #endregion
 
@@ -68,10 +68,10 @@
       get { return MessageBuilderParameter.Value; }
     }
-    //public MultiObjectiveOptimizationSupportScript OptimizationSupportScript {
-    //  get { return SupportScriptParameter.Value; }
-    //}
-    //private IMultiObjectiveOptimizationSupport OptimizationSupport {
-    //  get { return SupportScriptParameter.Value; }
-    //}
+    public MultiObjectiveOptimizationSupportScript OptimizationSupportScript {
+      get { return SupportScriptParameter.Value; }
+    }
+    private IMultiObjectiveOptimizationSupport OptimizationSupport {
+      get { return SupportScriptParameter.Value; }
+    }
     #endregion
 
@@ -89,5 +89,5 @@
       Parameters.Add(new ValueParameter<CheckedItemCollection<IEvaluationServiceClient>>("Clients", "The clients that are used to communicate with the external application.", new CheckedItemCollection<IEvaluationServiceClient>() { new EvaluationServiceClient() }));
       Parameters.Add(new ValueParameter<SolutionMessageBuilder>("MessageBuilder", "The message builder that converts from HeuristicLab objects to SolutionMessage representation.", new SolutionMessageBuilder()) { Hidden = true });
-      //Parameters.Add(new FixedValueParameter<MultiObjectiveOptimizationSupportScript>("SupportScript", "A script that can analyze the results of the optimization.", new MultiObjectiveOptimizationSupportScript()));
+      Parameters.Add(new FixedValueParameter<MultiObjectiveOptimizationSupportScript>("SupportScript", "A script that can analyze the results of the optimization.", new MultiObjectiveOptimizationSupportScript()));
 
       //Operators.Add(new BestScopeSolutionAnalyzer()); pareto front
@@ -114,5 +114,5 @@
 
     public override void Analyze(Individual[] individuals, double[][] qualities, ResultCollection results, IRandom random) {
-      //OptimizationSupport.Analyze(individuals, qualities, results, random);
+      OptimizationSupport.Analyze(individuals, qualities, results, random);
     }
 
Index: /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/CompiledMultiObjectiveOptimizationSupport.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/CompiledMultiObjectiveOptimizationSupport.cs	(revision 13183)
+++ /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/CompiledMultiObjectiveOptimizationSupport.cs	(revision 13183)
@@ -0,0 +1,24 @@
+﻿using System;
+using System.Linq;
+using System.Collections.Generic;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Optimization;
+
+namespace HeuristicLab.Problems.ExternalEvaluation {
+  public class CompiledMultiObjectiveOptimizationSupport : CompiledOptimizationSupport, IMultiObjectiveOptimizationSupport {
+
+    public void Analyze(Individual[] individuals, double[][] qualities, ResultCollection results, IRandom random) {
+      // Use vars.yourVariable to access variables in the variable store i.e. yourVariable
+      // Write or update results given the range of vectors and resulting qualities
+      // Uncomment the following lines if you want to retrieve the best individual
+      //var bestIndex = Maximization ?
+      //         qualities.Select((v, i) => Tuple.Create(i, v)).OrderByDescending(x => x.Item2).First().Item1
+      //       : qualities.Select((v, i) => Tuple.Create(i, v)).OrderBy(x => x.Item2).First().Item1;
+      //var best = individuals[bestIndex];
+    }
+
+    // Implement further classes and methods
+  }
+}
Index: /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/MultiObjectiveOptimizationSupportScript.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/MultiObjectiveOptimizationSupportScript.cs	(revision 13183)
+++ /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/MultiObjectiveOptimizationSupportScript.cs	(revision 13183)
@@ -0,0 +1,50 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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;
+using HeuristicLab.Problems.ExternalEvaluation.Programmable;
+
+namespace HeuristicLab.Problems.ExternalEvaluation {
+  [Item("ProblemDefinitionScript", "Script that defines the parameter vector and evaluates the solution for a programmable problem.")]
+  [StorableClass]
+  public sealed class MultiObjectiveOptimizationSupportScript : OptimizationSupportScript<IMultiObjectiveOptimizationSupport>, IMultiObjectiveOptimizationSupport {
+
+    protected override string CodeTemplate {
+      get { return Templates.CompiledMultiObjectiveOptimizationSupport; }
+    }
+
+    [StorableConstructor]
+    private MultiObjectiveOptimizationSupportScript(bool deserializing) : base(deserializing) { }
+    private MultiObjectiveOptimizationSupportScript(MultiObjectiveOptimizationSupportScript original, Cloner cloner) : base(original, cloner) { }
+    public MultiObjectiveOptimizationSupportScript() : base() { }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new MultiObjectiveOptimizationSupportScript(this, cloner);
+    }
+
+    void IMultiObjectiveOptimizationSupport.Analyze(Individual[] individuals, double[][] qualities, ResultCollection results, IRandom random) {
+      CompiledInstance.Analyze(individuals, qualities, results, random);
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/OptimizationSupportScript.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/OptimizationSupportScript.cs	(revision 13183)
+++ /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/OptimizationSupportScript.cs	(revision 13183)
@@ -0,0 +1,98 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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.Reflection;
+using HeuristicLab.Common;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Scripting;
+
+namespace HeuristicLab.Problems.ExternalEvaluation.Programmable {
+  public abstract class OptimizationSupportScript<T> : Script
+    where T : class {
+
+    [Storable]
+    private VariableStore variableStore;
+    public VariableStore VariableStore {
+      get { return variableStore; }
+    }
+
+    [StorableConstructor]
+    protected OptimizationSupportScript(bool deserializing) : base(deserializing) { }
+    protected OptimizationSupportScript(OptimizationSupportScript<T> original, Cloner cloner)
+      : base(original, cloner) {
+      variableStore = cloner.Clone(original.variableStore);
+    }
+
+    protected OptimizationSupportScript()
+      : base() {
+      variableStore = new VariableStore();
+    }
+
+    private readonly object compileLock = new object();
+    private T compiledInstance;
+    protected T CompiledInstance {
+      get {
+        if (compiledInstance == null) {
+          lock (compileLock) {
+            if (compiledInstance == null) {
+              Compile();
+            }
+          }
+        }
+        return compiledInstance;
+      }
+      private set { compiledInstance = value; }
+    }
+
+    public override Assembly Compile() {
+      var assembly = base.Compile();
+      var types = assembly.GetTypes();
+      if (!types.Any(x => typeof(CompiledOptimizationSupport).IsAssignableFrom(x)))
+        throw new OptimizationSupportException("The compiled code doesn't contain an optimization support." + Environment.NewLine + "The support class must be a subclass of CompiledOptimizationSupport.");
+      if (types.Count(x => typeof(CompiledOptimizationSupport).IsAssignableFrom(x)) > 1)
+        throw new OptimizationSupportException("The compiled code contains multiple support classes." + Environment.NewLine + "Only one subclass of CompiledOptimizationSupport is allowed.");
+
+      CompiledOptimizationSupport inst;
+      try {
+        inst = (CompiledOptimizationSupport)Activator.CreateInstance(types.Single(x => typeof(CompiledOptimizationSupport).IsAssignableFrom(x)));
+        inst.vars = new Variables(VariableStore);
+      } catch (Exception e) {
+        compiledInstance = null;
+        throw new OptimizationSupportException("Instantiating the optimization support class failed." + Environment.NewLine + "Check your default constructor.", e);
+      }
+
+      var concreteInst = inst as T;
+      if (concreteInst == null)
+        throw new OptimizationSupportException("The optimization support class does not implement ISingleObjectiveOptimizationSupport." + Environment.NewLine + "Please implement that interface in the subclass of CompiledOptimizationSupport.");
+
+      CompiledInstance = concreteInst;
+
+      return assembly;
+    }
+
+    protected override void OnCodeChanged() {
+      base.OnCodeChanged();
+      compiledInstance = null;
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/OptimizationSupportScriptException.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/OptimizationSupportScriptException.cs	(revision 13183)
+++ /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/OptimizationSupportScriptException.cs	(revision 13183)
@@ -0,0 +1,35 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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.Runtime.Serialization;
+
+namespace HeuristicLab.Problems.ExternalEvaluation {
+  [Serializable]
+  public class OptimizationSupportException : Exception {
+    public OptimizationSupportException() { }
+    public OptimizationSupportException(string message) : base(message) { }
+    public OptimizationSupportException(string message, Exception inner) : base(message, inner) { }
+
+    protected OptimizationSupportException(SerializationInfo info, StreamingContext context)
+      : base(info, context) { }
+  }
+}
Index: /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/SingleObjectiveOptimizationSupportScript.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/SingleObjectiveOptimizationSupportScript.cs	(revision 13182)
+++ /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/SingleObjectiveOptimizationSupportScript.cs	(revision 13183)
@@ -20,8 +20,5 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -29,16 +26,9 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.Problems.ExternalEvaluation.Programmable;
-using HeuristicLab.Scripting;
 
 namespace HeuristicLab.Problems.ExternalEvaluation {
   [Item("ProblemDefinitionScript", "Script that defines the parameter vector and evaluates the solution for a programmable problem.")]
   [StorableClass]
-  public sealed class SingleObjectiveOptimizationSupportScript : Script, ISingleObjectiveOptimizationSupport {
-
-    [Storable]
-    private VariableStore variableStore;
-    public VariableStore VariableStore {
-      get { return variableStore; }
-    }
+  public sealed class SingleObjectiveOptimizationSupportScript : OptimizationSupportScript<ISingleObjectiveOptimizationSupport>, ISingleObjectiveOptimizationSupport {
 
     protected override string CodeTemplate {
@@ -48,62 +38,9 @@
     [StorableConstructor]
     private SingleObjectiveOptimizationSupportScript(bool deserializing) : base(deserializing) { }
-    private SingleObjectiveOptimizationSupportScript(SingleObjectiveOptimizationSupportScript original, Cloner cloner)
-      : base(original, cloner) {
-      variableStore = cloner.Clone(original.variableStore);
-    }
-    public SingleObjectiveOptimizationSupportScript()
-      : base() {
-      variableStore = new VariableStore();
-    }
+    private SingleObjectiveOptimizationSupportScript(SingleObjectiveOptimizationSupportScript original, Cloner cloner) : base(original, cloner) { }
+    public SingleObjectiveOptimizationSupportScript() : base() { }
 
     public override IDeepCloneable Clone(Cloner cloner) {
       return new SingleObjectiveOptimizationSupportScript(this, cloner);
-    }
-
-    private readonly object compileLock = new object();
-    private volatile ISingleObjectiveOptimizationSupport compiledInstance;
-    private ISingleObjectiveOptimizationSupport CompiledInstance {
-      get {
-        if (compiledInstance == null) {
-          lock (compileLock) {
-            if (compiledInstance == null) {
-              Compile();
-            }
-          }
-        }
-        return compiledInstance;
-      }
-      set { compiledInstance = value; }
-    }
-
-    public override Assembly Compile() {
-      var assembly = base.Compile();
-      var types = assembly.GetTypes();
-      if (!types.Any(x => typeof(CompiledOptimizationSupport).IsAssignableFrom(x)))
-        throw new SingleObjectiveOptimizationSupportException("The compiled code doesn't contain an optimization support." + Environment.NewLine + "The support class must be a subclass of CompiledOptimizationSupport.");
-      if (types.Count(x => typeof(CompiledOptimizationSupport).IsAssignableFrom(x)) > 1)
-        throw new SingleObjectiveOptimizationSupportException("The compiled code contains multiple support classes." + Environment.NewLine + "Only one subclass of CompiledOptimizationSupport is allowed.");
-
-      CompiledOptimizationSupport inst;
-      try {
-        inst = (CompiledOptimizationSupport)Activator.CreateInstance(types.Single(x => typeof(CompiledOptimizationSupport).IsAssignableFrom(x)));
-        inst.vars = new Variables(VariableStore);
-      } catch (Exception e) {
-        compiledInstance = null;
-        throw new SingleObjectiveOptimizationSupportException("Instantiating the optimization support class failed." + Environment.NewLine + "Check your default constructor.", e);
-      }
-
-      var soInst = inst as ISingleObjectiveOptimizationSupport;
-      if (soInst == null)
-        throw new SingleObjectiveOptimizationSupportException("The optimization support class does not implement ISingleObjectiveOptimizationSupport." + Environment.NewLine + "Please implement that interface in the subclass of CompiledOptimizationSupport.");
-
-      CompiledInstance = soInst;
-
-      return assembly;
-    }
-
-    protected override void OnCodeChanged() {
-      base.OnCodeChanged();
-      compiledInstance = null;
     }
 
Index: unk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/SingleObjectiveOptimizationSupportScriptException.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/SingleObjectiveOptimizationSupportScriptException.cs	(revision 13182)
+++ 	(revision )
@@ -1,35 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.Runtime.Serialization;
-
-namespace HeuristicLab.Problems.ExternalEvaluation {
-  [Serializable]
-  public class SingleObjectiveOptimizationSupportException : Exception {
-    public SingleObjectiveOptimizationSupportException() { }
-    public SingleObjectiveOptimizationSupportException(string message) : base(message) { }
-    public SingleObjectiveOptimizationSupportException(string message, Exception inner) : base(message, inner) { }
-
-    protected SingleObjectiveOptimizationSupportException(SerializationInfo info, StreamingContext context)
-      : base(info, context) { }
-  }
-}
Index: /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/Templates.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/Templates.Designer.cs	(revision 13182)
+++ /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/Templates.Designer.cs	(revision 13183)
@@ -2,5 +2,5 @@
 // <auto-generated>
 //     This code was generated by a tool.
-//     Runtime Version:4.0.30319.34209
+//     Runtime Version:4.0.30319.42000
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
@@ -68,13 +68,32 @@
         ///using HeuristicLab.Core;
         ///using HeuristicLab.Data;
-        ///using HeuristicLab.Encodings.PermutationEncoding;
         ///using HeuristicLab.Optimization;
-        ///using HeuristicLab.Problems.Programmable;
         ///
-        ///namespace HeuristicLab.Problems.Programmable {
-        ///  public class CompiledSingleObjectiveProblemDefinition : CompiledProblemDefinition, ISingleObjectiveProblemDefinition {
-        ///    public bool Maximization { get { return false; } }
+        ///namespace HeuristicLab.Problems.ExternalEvaluation {
+        ///  public class CompiledMultiObjectiveOptimizationSupport : CompiledOptimizationSupport, IMultiObjectiveOptimizationSupport {
         ///
-        ///     [rest of string was truncated]&quot;;.
+        ///    public void Analyze(Individual[] individuals, double[][] qualities, ResultCollection results, IRandom random) {
+        ///      // Use vars.yourVaria [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string CompiledMultiObjectiveOptimizationSupport {
+            get {
+                return ResourceManager.GetString("CompiledMultiObjectiveOptimizationSupport", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to using System;
+        ///using System.Linq;
+        ///using System.Collections.Generic;
+        ///using HeuristicLab.Common;
+        ///using HeuristicLab.Core;
+        ///using HeuristicLab.Data;
+        ///using HeuristicLab.Optimization;
+        ///
+        ///namespace HeuristicLab.Problems.ExternalEvaluation {
+        ///  public class CompiledSingleObjectiveOptimizationSupport : CompiledOptimizationSupport, ISingleObjectiveOptimizationSupport {
+        ///
+        ///    public void Analyze(Individual[] individuals, double[] qualities, ResultCollection results, IRandom random) {
+        ///      // Use vars.yourVaria [rest of string was truncated]&quot;;.
         /// </summary>
         internal static string CompiledSingleObjectiveOptimizationSupport {
Index: /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/Templates.resx
===================================================================
--- /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/Templates.resx	(revision 13182)
+++ /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.4/Programmable/Templates.resx	(revision 13183)
@@ -119,4 +119,7 @@
   </resheader>
   <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="CompiledMultiObjectiveOptimizationSupport" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>compiledmultiobjectiveoptimizationsupport.cs;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
+  </data>
   <data name="CompiledSingleObjectiveOptimizationSupport" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>CompiledSingleObjectiveOptimizationSupport.cs;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
