Index: /branches/2521_ProblemRefactoring/HeuristicLab.Optimization/3.3/BasicProblems/SingleObjectiveProblem.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Optimization/3.3/BasicProblems/SingleObjectiveProblem.cs	(revision 16810)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Optimization/3.3/BasicProblems/SingleObjectiveProblem.cs	(revision 16811)
@@ -68,5 +68,5 @@
       ParameterizeOperators();
     }
-
+  
     protected SingleObjectiveProblem() : base() {
       Parameters.Add(new FixedValueParameter<BoolValue>("Maximization", "Set to false if the problem should be minimized.", (BoolValue)new BoolValue(Maximization).AsReadOnly()) { Hidden = true });
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/MultiObjectiveProgrammableProblem.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/MultiObjectiveProgrammableProblem.cs	(revision 16810)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/MultiObjectiveProgrammableProblem.cs	(revision 16811)
@@ -71,9 +71,9 @@
     }
 
-    public MultiObjectiveProgrammableProblem()
-      : base() {
+    public MultiObjectiveProgrammableProblem(TEncoding encoding)
+      : base(encoding) {
       Parameters.Add(new FixedValueParameter<MultiObjectiveProblemDefinitionScript<TEncoding, TEncodedSolution>>("ProblemScript", "Defines the problem.",
         new MultiObjectiveProblemDefinitionScript<TEncoding, TEncodedSolution>() { Name = Name }));
-      ProblemScript.Encoding = (TEncoding)Encoding.Clone();
+      ProblemScript.Encoding = (TEncoding)encoding.Clone();
 
       var codeTemplate = ScriptTemplates.MultiObjectiveProblem_Template;
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/ProgrammableProblemInstances.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/ProgrammableProblemInstances.cs	(revision 16810)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/ProgrammableProblemInstances.cs	(revision 16811)
@@ -45,5 +45,5 @@
 
     public SingleObjectiveBinaryVectorProgrammableProblem()
-      : base() {
+      : base(new BinaryVectorEncoding()) {
       var codeTemplate = ScriptTemplates.SingleObjectiveProblem_Template;
       codeTemplate = codeTemplate.Replace(ENCODING_NAMESPACE, "HeuristicLab.Encodings.BinaryVectorEncoding");
@@ -69,5 +69,5 @@
 
     public SingleObjectiveIntegerVectorProgrammableProblem()
-      : base() {
+      : base(new IntegerVectorEncoding()) {
       var codeTemplate = ScriptTemplates.SingleObjectiveProblem_Template;
       codeTemplate = codeTemplate.Replace(ENCODING_NAMESPACE, "HeuristicLab.Encodings.IntegerVectorEncoding");
@@ -92,5 +92,5 @@
 
     public SingleObjectiveRealVectorProgrammableProblem()
-      : base() {
+      : base(new RealVectorEncoding()) {
       var codeTemplate = ScriptTemplates.SingleObjectiveProblem_Template;
       codeTemplate = codeTemplate.Replace(ENCODING_NAMESPACE, "HeuristicLab.Encodings.RealVectorEncoding");
@@ -115,5 +115,5 @@
 
     public SingleObjectivePermutationProgrammableProblem()
-      : base() {
+      : base(new PermutationEncoding()) {
       var codeTemplate = ScriptTemplates.SingleObjectiveProblem_Template;
       codeTemplate = codeTemplate.Replace(ENCODING_NAMESPACE, "HeuristicLab.Encodings.PermutationEncoding");
@@ -137,5 +137,5 @@
     private SingleObjectiveSymbolicExpressionTreeProgrammableProblem(SingleObjectiveSymbolicExpressionTreeProgrammableProblem original, Cloner cloner) : base(original, cloner) { }
     public SingleObjectiveSymbolicExpressionTreeProgrammableProblem()
-      : base() {
+      : base(new SymbolicExpressionTreeEncoding()) {
       var codeTemplate = ScriptTemplates.SingleObjectiveProblem_Template;
       codeTemplate = codeTemplate.Replace(ENCODING_NAMESPACE, "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding");
@@ -159,5 +159,5 @@
     private SingleObjectiveLinearLinkageProgrammableProblem(SingleObjectiveLinearLinkageProgrammableProblem original, Cloner cloner) : base(original, cloner) { }
     public SingleObjectiveLinearLinkageProgrammableProblem()
-      : base() {
+      : base(new LinearLinkageEncoding()) {
       var codeTemplate = ScriptTemplates.SingleObjectiveProblem_Template;
       codeTemplate = codeTemplate.Replace(ENCODING_NAMESPACE, "HeuristicLab.Encodings.LinearLinkageEncoding");
@@ -182,5 +182,5 @@
 
     public SingleObjectiveCombinedEncodingProgrammableProblem()
-      : base() {
+      : base(new CombinedEncoding()) {
       ProblemScript.Code = ScriptTemplates.SingleObjectiveCombinedEncodingProblem_Template;
     }
@@ -204,5 +204,5 @@
 
     public MultiObjectiveBinaryVectorProgrammableProblem()
-      : base() {
+      : base(new BinaryVectorEncoding()) {
       var codeTemplate = ScriptTemplates.MultiObjectiveProblem_Template;
       codeTemplate = codeTemplate.Replace(ENCODING_NAMESPACE, "HeuristicLab.Encodings.BinaryVectorEncoding");
@@ -228,5 +228,5 @@
 
     public MultiObjectiveIntegerVectorProgrammableProblem()
-      : base() {
+      : base(new IntegerVectorEncoding()) {
       var codeTemplate = ScriptTemplates.MultiObjectiveProblem_Template;
       codeTemplate = codeTemplate.Replace(ENCODING_NAMESPACE, "HeuristicLab.Encodings.IntegerVectorEncoding");
@@ -251,5 +251,5 @@
 
     public MultiObjectiveRealVectorProgrammableProblem()
-      : base() {
+      : base(new RealVectorEncoding()) {
       var codeTemplate = ScriptTemplates.MultiObjectiveProblem_Template;
       codeTemplate = codeTemplate.Replace(ENCODING_NAMESPACE, "HeuristicLab.Encodings.RealVectorEncoding");
@@ -273,5 +273,5 @@
     private MultiObjectivePermutationProgrammableProblem(MultiObjectivePermutationProgrammableProblem original, Cloner cloner) : base(original, cloner) { }
     public MultiObjectivePermutationProgrammableProblem()
-      : base() {
+      : base(new PermutationEncoding()) {
       var codeTemplate = ScriptTemplates.MultiObjectiveProblem_Template;
       codeTemplate = codeTemplate.Replace(ENCODING_NAMESPACE, "HeuristicLab.Encodings.PermutationEncoding");
@@ -295,5 +295,5 @@
     private MultiObjectiveSymbolicExpressionTreeProgrammableProblem(MultiObjectiveSymbolicExpressionTreeProgrammableProblem original, Cloner cloner) : base(original, cloner) { }
     public MultiObjectiveSymbolicExpressionTreeProgrammableProblem()
-      : base() {
+      : base(new SymbolicExpressionTreeEncoding()) {
       var codeTemplate = ScriptTemplates.MultiObjectiveProblem_Template;
       codeTemplate = codeTemplate.Replace(ENCODING_NAMESPACE, "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding");
@@ -317,5 +317,5 @@
     private MultiObjectiveLinearLinkageProgrammableProblem(MultiObjectiveLinearLinkageProgrammableProblem original, Cloner cloner) : base(original, cloner) { }
     public MultiObjectiveLinearLinkageProgrammableProblem()
-      : base() {
+      : base(new LinearLinkageEncoding()) {
       var codeTemplate = ScriptTemplates.MultiObjectiveProblem_Template;
       codeTemplate = codeTemplate.Replace(ENCODING_NAMESPACE, "HeuristicLab.Encodings.LinearLinkageEncoding");
@@ -340,5 +340,5 @@
 
     public MultiObjectiveCombinedEncodingProgrammableProblem()
-      : base() {
+      : base(new CombinedEncoding()) {
       ProblemScript.Code = ScriptTemplates.MultiObjectiveCombinedEncodingProblem_Template;
     }
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/SingleObjectiveProgrammableProblem.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/SingleObjectiveProgrammableProblem.cs	(revision 16810)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/SingleObjectiveProgrammableProblem.cs	(revision 16811)
@@ -73,8 +73,8 @@
     [StorableConstructor]
     protected SingleObjectiveProgrammableProblem(StorableConstructorFlag _) : base(_) { }
-    public SingleObjectiveProgrammableProblem()
-      : base() {
+    public SingleObjectiveProgrammableProblem(TEncoding encoding)
+      : base(encoding) {
       Parameters.Add(new FixedValueParameter<SingleObjectiveProblemDefinitionScript<TEncoding, TEncodedSolution>>("ProblemScript", "Defines the problem.", new SingleObjectiveProblemDefinitionScript<TEncoding, TEncodedSolution>() { Name = Name }));
-      ProblemScript.Encoding = (TEncoding)Encoding.Clone();
+      ProblemScript.Encoding = (TEncoding)encoding.Clone();
 
       var codeTemplate = ScriptTemplates.SingleObjectiveProblem_Template;
