Index: branches/ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/Templates/CompiledSingleObjectiveProblemDefinition.cs
===================================================================
--- branches/ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/Templates/CompiledSingleObjectiveProblemDefinition.cs	(revision 13345)
+++ 	(revision )
@@ -1,57 +1,0 @@
-﻿using System;
-using System.Linq;
-using System.Collections.Generic;
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-using HeuristicLab.Data;
-using {0}
-using HeuristicLab.Optimization;
-using HeuristicLab.Problems.Programmable;
-
-namespace HeuristicLab.Problems.Programmable {
-  public class CompiledSingleObjectiveProblemDefinition : CompiledProblemDefinition<{1}, {2}>, ISingleObjectiveProblemDefinition<{1}, {2}> {
-    public bool Maximization { get { return false; } }
-
-    public override void Initialize() {
-      // Use vars.yourVariable to access variables in the variable store i.e. yourVariable
-      // Define e.g. the length of the solution encoding or the solution creator by modifying the Encoding property
-      // Add additional initialization code e.g. private variables that you need for evaluating
-    }
-
-    public double Evaluate({2} individual, IRandom random) {
-      // Use vars.yourVariable to access variables in the variable store i.e. yourVariable
-      var quality = 0.0;
-      return quality;
-    }
-
-    public void Analyze({2}[] 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 orderedIndividuals = individuals.Zip(qualities, (i, q) => new { Individual = i, Quality = q }).OrderBy(z => z.Quality);
-      //var best = Maximization ? orderedIndividuals.Last().Individual : orderedIndividuals.First().Individual;
-
-      //if (!results.ContainsKey("Best Solution")) {
-      //  results.Add(new Result("Best Solution", typeof({20)));
-      //}
-      //results["Best Solution"].Value = (IItem)best.Clone();
-    }
-
-    public IEnumerable<{2}> GetNeighbors({2} individual, IRandom random) {
-      // Use vars.yourVariable to access variables in the variable store i.e. yourVariable
-      // Create new vectors, based on the given one that represent small changes
-      // This method is only called from move-based algorithms (Local Search, Simulated Annealing, etc.)
-      while (true) {
-        // Algorithm will draw only a finite amount of samples
-        // Change to a for-loop to return a concrete amount of neighbors
-        var neighbor = ({2})individual.Clone();
-        // modify the solution specified as neighbor
-        yield return neighbor;
-      }
-    }
-
-    // Implement further classes and methods
-  }
-}
-
Index: branches/ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/Templates/CompiledSingleObjectiveProblemDefinition_Template.cs
===================================================================
--- branches/ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/Templates/CompiledSingleObjectiveProblemDefinition_Template.cs	(revision 13348)
+++ branches/ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/Templates/CompiledSingleObjectiveProblemDefinition_Template.cs	(revision 13348)
@@ -0,0 +1,57 @@
+﻿using System;
+using System.Linq;
+using System.Collections.Generic;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using ENCODING_NAMESPACE;
+using HeuristicLab.Optimization;
+using HeuristicLab.Problems.Programmable;
+
+namespace HeuristicLab.Problems.Programmable {
+  public class CompiledSingleObjectiveProblemDefinition : CompiledSingleObjectiveProblemDefinition<ENCODING_CLASS, SOLUTION_CLASS> {
+    public override bool Maximization { get { return false; } }
+
+    public override void Initialize() {
+      // Use vars.yourVariable to access variables in the variable store i.e. yourVariable
+      // Define e.g. the length of the solution encoding or the solution creator by modifying the Encoding property
+      // Add additional initialization code e.g. private variables that you need for evaluating
+    }
+
+    public override double Evaluate(SOLUTION_CLASS solution, IRandom random) {
+      // Use vars.yourVariable to access variables in the variable store i.e. yourVariable
+      var quality = 0.0;
+      return quality;
+    }
+
+    public override void Analyze(SOLUTION_CLASS[] solution, 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 orderedIndividuals = individuals.Zip(qualities, (i, q) => new { Individual = i, Quality = q }).OrderBy(z => z.Quality);
+      //var best = Maximization ? orderedIndividuals.Last().Individual : orderedIndividuals.First().Individual;
+
+      //if (!results.ContainsKey("Best Solution")) {
+      //  results.Add(new Result("Best Solution", typeof(SOLUTION_CLASS)));
+      //}
+      //results["Best Solution"].Value = (IItem)best.Clone();
+    }
+
+    public override IEnumerable<SOLUTION_CLASS> GetNeighbors(SOLUTION_CLASS individual, IRandom random) {
+      // Use vars.yourVariable to access variables in the variable store i.e. yourVariable
+      // Create new vectors, based on the given one that represent small changes
+      // This method is only called from move-based algorithms (Local Search, Simulated Annealing, etc.)
+      while (true) {
+        // Algorithm will draw only a finite amount of samples
+        // Change to a for-loop to return a concrete amount of neighbors
+        var neighbor = (SOLUTION_CLASS)individual.Clone();
+        // modify the solution specified as neighbor
+        yield return neighbor;
+      }
+    }
+
+    // Implement further classes and methods
+  }
+}
+
Index: branches/ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/Templates/ScriptTemplates.Designer.cs
===================================================================
--- branches/ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/Templates/ScriptTemplates.Designer.cs	(revision 13345)
+++ branches/ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/Templates/ScriptTemplates.Designer.cs	(revision 13348)
@@ -2,5 +2,5 @@
 // <auto-generated>
 //     This code was generated by a tool.
-//     Runtime Version:4.0.30319.18444
+//     Runtime Version:4.0.30319.34209
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
@@ -10,98 +10,99 @@
 
 namespace HeuristicLab.Problems.Programmable {
-    using System;
-    
-    
+  using System;
+
+
+  /// <summary>
+  ///   A strongly-typed resource class, for looking up localized strings, etc.
+  /// </summary>
+  // This class was auto-generated by the StronglyTypedResourceBuilder
+  // class via a tool like ResGen or Visual Studio.
+  // To add or remove a member, edit your .ResX file then rerun ResGen
+  // with the /str option, or rebuild your VS project.
+  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+  [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+  public class ScriptTemplates {
+
+    private static global::System.Resources.ResourceManager resourceMan;
+
+    private static global::System.Globalization.CultureInfo resourceCulture;
+
+    [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+    internal ScriptTemplates() {
+    }
+
     /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    ///   Returns the cached ResourceManager instance used by this class.
     /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class ScriptTemplates {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal ScriptTemplates() {
+    [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+    public static global::System.Resources.ResourceManager ResourceManager {
+      get {
+        if (object.ReferenceEquals(resourceMan, null)) {
+          global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HeuristicLab.Problems.Programmable.Templates.ScriptTemplates", typeof(ScriptTemplates).Assembly);
+          resourceMan = temp;
         }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HeuristicLab.Problems.Programmable.Templates.ScriptTemplates", typeof(ScriptTemplates).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <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.Encodings.PermutationEncoding;
-        ///using HeuristicLab.Optimization;
-        ///using HeuristicLab.Problems.Programmable;
-        ///
-        ///namespace HeuristicLab.Problems.Programmable {
-        ///  public class CompiledMultiObjectiveProblemDefinition : CompiledProblemDefinition, IMultiObjectiveProblemDefinition {
-        ///    public bool[] Maximization { get { return new[] { false, fal [rest of string was truncated]&quot;;.
-        /// </summary>
-        internal static string CompiledMultiObjectiveProblemDefinition {
-            get {
-                return ResourceManager.GetString("CompiledMultiObjectiveProblemDefinition", 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.Encodings.PermutationEncoding;
-        ///using HeuristicLab.Optimization;
-        ///using HeuristicLab.Problems.Programmable;
-        ///
-        ///namespace HeuristicLab.Problems.Programmable {
-        ///  public class CompiledSingleObjectiveProblemDefinition : CompiledProblemDefinition, ISingleObjectiveProblemDefinition {
-        ///    public bool Maximization { get { return false; } }
-        ///
-        ///     [rest of string was truncated]&quot;;.
-        /// </summary>
-        internal static string CompiledSingleObjectiveProblemDefinition {
-            get {
-                return ResourceManager.GetString("CompiledSingleObjectiveProblemDefinition", resourceCulture);
-            }
-        }
+        return resourceMan;
+      }
     }
+
+    /// <summary>
+    ///   Overrides the current thread's CurrentUICulture property for all
+    ///   resource lookups using this strongly typed resource class.
+    /// </summary>
+    [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+    public static global::System.Globalization.CultureInfo Culture {
+      get {
+        return resourceCulture;
+      }
+      set {
+        resourceCulture = value;
+      }
+    }
+
+    /// <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.Encodings.BinaryVectorEncoding;
+    ///using HeuristicLab.Encodings.IntegerVectorEncoding;
+    ///using HeuristicLab.Encodings.RealVectorEncoding;
+    ///using HeuristicLab.Encodings.PermutationEncoding;
+    ///using HeuristicLab.Encodings.LinearLinkageEncoding;
+    ///using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+    ///using HeuristicLab.Optimization;
+    ///using H [rest of string was truncated]&quot;;.
+    /// </summary>
+    public static string CompiledMultiObjectiveProblemDefinition_Template {
+      get {
+        return ResourceManager.GetString("CompiledMultiObjectiveProblemDefinition_Template", 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 ENCODING_NAMESPACE;
+    ///using HeuristicLab.Optimization;
+    ///using HeuristicLab.Problems.Programmable;
+    ///
+    ///namespace HeuristicLab.Problems.Programmable {
+    ///  public class CompiledSingleObjectiveProblemDefinition : CompiledSingleObjectiveProblemDefinition&lt;ENCODING_CLASS, SOLUTION_CLASS&gt; {
+    ///    public override bool Maximization { get { return false; } }
+    ///
+    ///    pub [rest of string was truncated]&quot;;.
+    /// </summary>
+    public static string CompiledSingleObjectiveProblemDefinition_Template {
+      get {
+        return ResourceManager.GetString("CompiledSingleObjectiveProblemDefinition_Template", resourceCulture);
+      }
+    }
+  }
 }
Index: branches/ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/Templates/ScriptTemplates.resx
===================================================================
--- branches/ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/Templates/ScriptTemplates.resx	(revision 13345)
+++ branches/ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/Templates/ScriptTemplates.resx	(revision 13348)
@@ -119,9 +119,9 @@
   </resheader>
   <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="CompiledMultiObjectiveProblemDefinition" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>CompiledMultiObjectiveProblemDefinition.cs;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
+  <data name="CompiledMultiObjectiveProblemDefinition_Template" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>CompiledMultiObjectiveProblemDefinition_Template.cs;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
   </data>
-  <data name="CompiledSingleObjectiveProblemDefinition" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>CompiledSingleObjectiveProblemDefinition.cs;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
+  <data name="CompiledSingleObjectiveProblemDefinition_Template" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>CompiledSingleObjectiveProblemDefinition_Template.cs;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
   </data>
 </root>
