Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/Encoding.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/Encoding.cs	(revision 11618)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/Encoding.cs	(revision 11619)
@@ -76,6 +76,6 @@
     protected Encoding(string name) : base(name) { }
 
-    public virtual  Individual CreateIndividual(IScope scope) {
-      return new Individual(this, scope);
+    public virtual Individual GetIndividual(IScope scope) {
+      return new SingleEncodingIndividual(this, scope);
     }
 
Index: anches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/Individual.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/Individual.cs	(revision 11618)
+++ 	(revision )
@@ -1,101 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-using HeuristicLab.Encodings.BinaryVectorEncoding;
-using HeuristicLab.Encodings.IntegerVectorEncoding;
-using HeuristicLab.Encodings.PermutationEncoding;
-using HeuristicLab.Encodings.RealVectorEncoding;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Problems.Programmable {
-  [StorableClass]
-  public class Individual : Item {
-    [Storable]
-    public IEncoding Encoding { get; private set; }
-    [Storable]
-    protected IScope Scope { get; private set; }
-
-    public Individual(IEncoding encoding, IScope scope) {
-      Encoding = encoding;
-      Scope = scope;
-    }
-
-    [StorableConstructor]
-    protected Individual(bool deserializing) : base(deserializing) { }
-
-    public override IDeepCloneable Clone(Cloner cloner) { return new Individual(this, cloner); }
-    protected Individual(Individual original, Cloner cloner)
-      : base(original, cloner) {
-      Encoding = cloner.Clone(original.Encoding);
-      Scope = cloner.Clone(original.Scope);
-    }
-
-    public virtual IItem this[string name] {
-      get { return ExtractScopeValue(name, Encoding.Name, Scope); }
-      set { SetScopeValue(name, Encoding.Name, Scope, value); }
-    }
-
-    internal virtual Individual Copy(IScope scope) {
-      var individual = Encoding.CreateIndividual(scope);
-      individual[Encoding.Name] = this[Encoding.Name];
-      return individual;
-    }
-
-    protected static IItem ExtractScopeValue(string name, string encodingName, IScope scope) {
-      if (name != encodingName) throw new ArgumentException(string.Format("{0} is not part of the specified encoding.", name));
-      if (!scope.Variables.ContainsKey(name)) throw new ArgumentException(string.Format("Encoding part {0} cannot be found in the provided scope.", name));
-      var value = scope.Variables[name].Value;
-      if (value == null) throw new ArgumentException(string.Format("Encoding part {0} is null.", name));
-      return value;
-    }
-
-    protected static void SetScopeValue(string name, string encodingName, IScope scope, IItem value) {
-      if (name != encodingName) throw new ArgumentException(string.Format("{0} is not part of the specified encoding.", name));
-      if (value == null) throw new ArgumentNullException("value");
-
-      if (!scope.Variables.ContainsKey(name)) scope.Variables.Add(new Variable(name, value));
-      else scope.Variables[name].Value = value;
-      var variable = scope.Variables[name];
-    }
-  }
-
-  #region extension methods
-  public static class IndividualExtensionMethods {
-    public static BinaryVector BinaryVector(this Individual individual, string name) {
-      return (BinaryVector)individual[name];
-    }
-    public static IntegerVector IntegerVector(this Individual individual, string name) {
-      return (IntegerVector)individual[name];
-    }
-    public static Permutation Permutation(this Individual individual, string name) {
-      return (Permutation)individual[name];
-    }
-    public static RealVector RealVector(this Individual individual, string name) {
-      return (RealVector)individual[name];
-    }
-  }
-  #endregion
-}
Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/MultiEncoding.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/MultiEncoding.cs	(revision 11618)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/MultiEncoding.cs	(revision 11619)
@@ -27,5 +27,4 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.PluginInfrastructure;
-using HeuristicLab.Problems.Programmable.Encodings;
 using HeuristicLab.Problems.Programmable.Interfaces;
 
@@ -63,5 +62,5 @@
     }
 
-    public override Individual CreateIndividual(IScope scope) {
+    public override Individual GetIndividual(IScope scope) {
       return new MultiEncodingIndividual(this, scope);
     }
Index: anches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/MultiEncodingIndividual.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/MultiEncodingIndividual.cs	(revision 11618)
+++ 	(revision )
@@ -1,68 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Problems.Programmable.Encodings {
-  public sealed class MultiEncodingIndividual : Individual {
-    public new MultiEncoding Encoding {
-      get { return (MultiEncoding)base.Encoding; }
-    }
-
-    public MultiEncodingIndividual(IEncoding encoding, IScope scope)
-      : base(encoding, scope) {
-      if (encoding.GetType() != typeof(MultiEncoding))
-        throw new ArgumentException("Encoding must be of type MultiEncoding.k");
-    }
-
-    [StorableConstructor]
-    private MultiEncodingIndividual(bool deserializing) : base(deserializing) { }
-
-    public override IDeepCloneable Clone(Cloner cloner) { return new MultiEncodingIndividual(this, cloner); }
-    private MultiEncodingIndividual(Individual original, Cloner cloner) : base(original, cloner) { }
-
-    public override IItem this[string name] {
-      get {
-        var encoding = Encoding.Encodings.FirstOrDefault(e => e.Name == name);
-        if (encoding == null) throw new ArgumentException(string.Format("{0} is not part of the specified encoding.", name));
-        return ExtractScopeValue(name, encoding.Name, Scope);
-      }
-      set {
-        var encoding = Encoding.Encodings.FirstOrDefault(e => e.Name == name);
-        if (encoding == null) throw new ArgumentException(string.Format("{0} is not part of the specified encoding.", name));
-        SetScopeValue(name, encoding.Name, Scope, value);
-      }
-    }
-
-    internal override Individual Copy(IScope scope) {
-      var individual = Encoding.CreateIndividual(scope);
-      foreach (var encoding in Encoding.Encodings)
-        individual[encoding.Name] = this[encoding.Name];
-      return individual;
-    }
-  }
-}
Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/HeuristicLab.Problems.Programmable-3.3.csproj
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/HeuristicLab.Problems.Programmable-3.3.csproj	(revision 11618)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/HeuristicLab.Problems.Programmable-3.3.csproj	(revision 11619)
@@ -127,5 +127,5 @@
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="Encodings\MultiEncodingIndividual.cs" />
+    <Compile Include="Individuals\MultiEncodingIndividual.cs" />
     <Compile Include="Encodings\PermutationEncoding.cs" />
     <Compile Include="Encodings\RealEncoding.cs" />
@@ -134,5 +134,6 @@
     <Compile Include="Encodings\MultiEncoding.cs" />
     <Compile Include="Encodings\Encoding.cs" />
-    <Compile Include="Encodings\Individual.cs" />
+    <Compile Include="Individuals\Individual.cs" />
+    <Compile Include="Individuals\SingleEncodingIndividual.cs" />
     <Compile Include="Interfaces\IEncoding.cs" />
     <Compile Include="Interfaces\IMultiEncodingOperator.cs" />
Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Individuals/Individual.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Individuals/Individual.cs	(revision 11619)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Individuals/Individual.cs	(revision 11619)
@@ -0,0 +1,78 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using HeuristicLab.Core;
+using HeuristicLab.Encodings.BinaryVectorEncoding;
+using HeuristicLab.Encodings.IntegerVectorEncoding;
+using HeuristicLab.Encodings.PermutationEncoding;
+using HeuristicLab.Encodings.RealVectorEncoding;
+
+namespace HeuristicLab.Problems.Programmable {
+  public abstract class Individual {
+    public IEncoding Encoding { get; private set; }
+    protected IScope Scope { get; private set; }
+
+    public string Name { get { return Encoding.Name; } }
+
+    protected Individual(IEncoding encoding, IScope scope) {
+      Encoding = encoding;
+      Scope = scope;
+    }
+
+    public abstract IItem this[string name] { get; set; }
+
+    public Individual Copy() {
+      return Copy(new Scope());
+    }
+    internal abstract Individual Copy(IScope scope);
+
+    protected static IItem ExtractScopeValue(string name, IScope scope) {
+      if (!scope.Variables.ContainsKey(name)) throw new ArgumentException(string.Format(" {0} cannot be found in the provided scope.", name));
+      var value = scope.Variables[name].Value;
+      if (value == null) throw new InvalidOperationException(string.Format("Value of {0} is null.", name));
+      return value;
+    }
+
+    protected static void SetScopeValue(string name, IScope scope, IItem value) {
+      if (value == null) throw new ArgumentNullException("value");
+      if (!scope.Variables.ContainsKey(name)) scope.Variables.Add(new Variable(name, value));
+      else scope.Variables[name].Value = value;
+    }
+  }
+
+  #region extension methods
+  public static class IndividualExtensionMethods {
+    public static BinaryVector BinaryVector(this Individual individual, string name) {
+      return (BinaryVector)individual[name];
+    }
+    public static IntegerVector IntegerVector(this Individual individual, string name) {
+      return (IntegerVector)individual[name];
+    }
+    public static Permutation Permutation(this Individual individual, string name) {
+      return (Permutation)individual[name];
+    }
+    public static RealVector RealVector(this Individual individual, string name) {
+      return (RealVector)individual[name];
+    }
+  }
+  #endregion
+}
Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Individuals/MultiEncodingIndividual.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Individuals/MultiEncodingIndividual.cs	(revision 11619)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Individuals/MultiEncodingIndividual.cs	(revision 11619)
@@ -0,0 +1,63 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Core;
+
+namespace HeuristicLab.Problems.Programmable {
+  public sealed class MultiEncodingIndividual : Individual {
+    public new MultiEncoding Encoding {
+      get { return (MultiEncoding)base.Encoding; }
+    }
+
+    private readonly IEnumerable<Individual> individuals;
+    public MultiEncodingIndividual(MultiEncoding encoding, IScope scope)
+      : base(encoding, scope) {
+      individuals = encoding.Encodings.Select(e => e.GetIndividual(scope)).ToArray();
+    }
+
+    private MultiEncodingIndividual(MultiEncoding encoding, IScope scope, IEnumerable<Individual> individuals)
+      : base(encoding, scope) {
+      this.individuals = individuals;
+    }
+
+
+    public override IItem this[string name] {
+      get {
+        var individual = individuals.FirstOrDefault(i => i.Name == name);
+        if (individual == null) throw new ArgumentException(string.Format("{0} is not part of the specified encoding.", name));
+        return individual[name];
+      }
+      set {
+        var individual = individuals.FirstOrDefault(i => i.Name == name);
+        if (individual == null) throw new ArgumentException(string.Format("{0} is not part of the specified encoding.", name));
+        individual[name] = value;
+      }
+    }
+
+    internal override Individual Copy(IScope scope) {
+      var copies = individuals.Select(i => i.Copy(scope)).ToArray();
+      return new MultiEncodingIndividual(Encoding, scope, copies);
+    }
+  }
+}
Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Individuals/SingleEncodingIndividual.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Individuals/SingleEncodingIndividual.cs	(revision 11619)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Individuals/SingleEncodingIndividual.cs	(revision 11619)
@@ -0,0 +1,50 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using HeuristicLab.Core;
+
+namespace HeuristicLab.Problems.Programmable {
+  public sealed class SingleEncodingIndividual : Individual {
+    public SingleEncodingIndividual(IEncoding encoding, IScope scope)
+      : base(encoding, scope) {
+      if (encoding is MultiEncoding) throw new ArgumentException("A MultiEncoding must not be used for the creation of a SingleEncodingIndividual");
+      if (!scope.Variables.ContainsKey(encoding.Name)) throw new ArgumentException("The provided scope does not contain an individual.");
+    }
+
+    public override IItem this[string name] {
+      get {
+        if (Name != name) throw new ArgumentException(string.Format("{0} is not part of the individual.", name));
+        return ExtractScopeValue(Name, Scope);
+      }
+      set {
+        if (Name != name) throw new ArgumentException(string.Format("{0} is not part of the individual.", name));
+        SetScopeValue(Name, Scope, value);
+      }
+    }
+
+    internal override Individual Copy(IScope scope) {
+      SetScopeValue(Name, scope, (IItem)this[Name].Clone());
+      return new SingleEncodingIndividual(Encoding, scope);
+    }
+  }
+
+}
Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Interfaces/IEncoding.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Interfaces/IEncoding.cs	(revision 11618)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Interfaces/IEncoding.cs	(revision 11619)
@@ -32,5 +32,5 @@
     //event EventHandler ParameterConfigurationChanged;
 
-    Individual CreateIndividual(IScope scope);
+    Individual GetIndividual(IScope scope);
     void ConfigureOperator(IOperator @operator);
     void ConfigureOperators(IEnumerable<IOperator> operators);
Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/MultiObjectiveAnalyzer.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/MultiObjectiveAnalyzer.cs	(revision 11618)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/MultiObjectiveAnalyzer.cs	(revision 11619)
@@ -57,5 +57,5 @@
         scopes = scopes.Select(x => (IEnumerable<IScope>)x.SubScopes).Aggregate((a, b) => a.Concat(b));
 
-      var individuals = scopes.Select(encoding.CreateIndividual).ToArray();
+      var individuals = scopes.Select(encoding.GetIndividual).ToArray();
       definition.Analyze(individuals, QualitiesParameter.ActualValue.Select(x => x.ToArray()).ToArray(), results);
       return base.Apply();
Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/MultiObjectiveEvaluator.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/MultiObjectiveEvaluator.cs	(revision 11618)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/MultiObjectiveEvaluator.cs	(revision 11619)
@@ -69,5 +69,5 @@
       if (definition == null) throw new InvalidOperationException("Problem definition is null.");
       var encoding = EncodingParameter.ActualValue;
-      var individual = encoding.CreateIndividual(ExecutionContext.Scope);
+      var individual = encoding.GetIndividual(ExecutionContext.Scope);
       QualitiesParameter.ActualValue = new DoubleArray(definition.Evaluate(random, individual));
       return base.Apply();
Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveAnalyzer.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveAnalyzer.cs	(revision 11618)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveAnalyzer.cs	(revision 11619)
@@ -57,5 +57,5 @@
         scopes = scopes.Select(x => (IEnumerable<IScope>)x.SubScopes).Aggregate((a, b) => a.Concat(b));
 
-      var individuals = scopes.Select(encoding.CreateIndividual).ToArray();
+      var individuals = scopes.Select(encoding.GetIndividual).ToArray();
       definition.Analyze(individuals, QualityParameter.ActualValue.Select(x => x.Value).ToArray(), results);
       return base.Apply();
Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveEvaluator.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveEvaluator.cs	(revision 11618)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveEvaluator.cs	(revision 11619)
@@ -69,5 +69,5 @@
       if (definition == null) throw new InvalidOperationException("Problem definition is null.");
       var encoding = EncodingParameter.ActualValue;
-      var individual = encoding.CreateIndividual(ExecutionContext.Scope);
+      var individual = encoding.GetIndividual(ExecutionContext.Scope);
       QualityParameter.ActualValue = new DoubleValue(definition.Evaluate(random, individual));
       return base.Apply();
Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveImprover.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveImprover.cs	(revision 11618)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveImprover.cs	(revision 11619)
@@ -75,5 +75,5 @@
       var maxAttempts = ImprovementAttemptsParameter.ActualValue.Value;
       var sampleSize = SampleSizeParameter.ActualValue.Value;
-      var individual = encoding.CreateIndividual(ExecutionContext.Scope);
+      var individual = encoding.GetIndividual(ExecutionContext.Scope);
       var quality = QualityParameter.ActualValue == null ? definition.Evaluate(random, individual) : QualityParameter.ActualValue.Value;
 
Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveMoveEvaluator.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveMoveEvaluator.cs	(revision 11618)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveMoveEvaluator.cs	(revision 11619)
@@ -74,5 +74,5 @@
       if (definition == null) throw new InvalidOperationException("Problem definition is null.");
       var encoding = EncodingParameter.ActualValue;
-      var individual = encoding.CreateIndividual(ExecutionContext.Scope);
+      var individual = encoding.GetIndividual(ExecutionContext.Scope);
       MoveQualityParameter.ActualValue = new DoubleValue(definition.Evaluate(random, individual));
       return base.InstrumentedApply();
Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveMoveGenerator.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveMoveGenerator.cs	(revision 11618)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveMoveGenerator.cs	(revision 11619)
@@ -73,5 +73,5 @@
       var sampleSize = SampleSizeParameter.ActualValue.Value;
       var encoding = EncodingParameter.ActualValue;
-      var individual = encoding.CreateIndividual(ExecutionContext.Scope);
+      var individual = encoding.GetIndividual(ExecutionContext.Scope);
       var nbhood = definition.GetNeighbors(random, individual).Take(sampleSize).ToList();
 
Index: /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveMoveMaker.cs
===================================================================
--- /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveMoveMaker.cs	(revision 11618)
+++ /branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveMoveMaker.cs	(revision 11619)
@@ -62,6 +62,6 @@
 
       var encoding = EncodingParameter.ActualValue;
-      var individual = encoding.CreateIndividual(ExecutionContext.Scope);
-      individual.Copy(ExecutionContext.Scope.Parent);
+      var individual = encoding.GetIndividual(ExecutionContext.Scope);
+      individual.Copy(ExecutionContext.Scope.Parent.Parent);
 
       if (QualityParameter.ActualValue == null) QualityParameter.ActualValue = new DoubleValue(MoveQualityParameter.ActualValue.Value);
