Index: branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/BinaryEncoding.cs
===================================================================
--- branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/BinaryEncoding.cs	(revision 11588)
+++ branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/BinaryEncoding.cs	(revision 11593)
@@ -72,5 +72,7 @@
     public BinaryEncoding(string name, int length)
       : base(name) {
-      LengthParameter = new FixedValueParameter<IntValue>(Name + "Length", new IntValue(length));
+      lengthParameter = new FixedValueParameter<IntValue>(Name + ".Length", new IntValue(length));
+      Parameters.Add(lengthParameter);
+
       SolutionCreator = new RandomBinaryVectorCreator();
       RegisterParameterEvents();
Index: branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/IntegerEncoding.cs
===================================================================
--- branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/IntegerEncoding.cs	(revision 11588)
+++ branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/IntegerEncoding.cs	(revision 11593)
@@ -102,6 +102,8 @@
       if (step.HasValue) bounds[0, 2] = step.Value;
 
-      LengthParameter = new FixedValueParameter<IntValue>(Name + "Length", new IntValue(length));
-      BoundsParameter = new ValueParameter<IntMatrix>(Name + "Bounds", bounds);
+      lengthParameter = new FixedValueParameter<IntValue>(Name + ".Length", new IntValue(length));
+      boundsParameter = new ValueParameter<IntMatrix>(Name + ".Bounds", bounds);
+      Parameters.Add(lengthParameter);
+      Parameters.Add(boundsParameter);
 
       SolutionCreator = new UniformRandomIntegerVectorCreator();
@@ -123,6 +125,6 @@
       }
 
-      LengthParameter = new FixedValueParameter<IntValue>(Name + "Length", new IntValue(length));
-      BoundsParameter = new ValueParameter<IntMatrix>(Name + "Bounds", bounds);
+      LengthParameter = new FixedValueParameter<IntValue>(Name + ".Length", new IntValue(length));
+      BoundsParameter = new ValueParameter<IntMatrix>(Name + ".Bounds", bounds);
 
       SolutionCreator = new UniformRandomIntegerVectorCreator();
Index: branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/PermutationEncoding.cs
===================================================================
--- branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/PermutationEncoding.cs	(revision 11588)
+++ branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/PermutationEncoding.cs	(revision 11593)
@@ -95,6 +95,8 @@
     public PermutationEncoding(string name, int length, PermutationTypes type)
       : base(name) {
-      LengthParameter = new FixedValueParameter<IntValue>(Name + "Length", new IntValue(length));
-      PermutationTypeParameter = new FixedValueParameter<PermutationType>(Name + "Type", new PermutationType(type));
+      lengthParameter = new FixedValueParameter<IntValue>(Name + ".Length", new IntValue(length));
+      permutationTypeParameter = new FixedValueParameter<PermutationType>(Name + ".Type", new PermutationType(type));
+      Parameters.Add(lengthParameter);
+      Parameters.Add(permutationTypeParameter);
 
       SolutionCreator = new RandomPermutationCreator();
@@ -194,20 +196,20 @@
     private void ConfigureInversionMoveOperators(IEnumerable<IPermutationInversionMoveOperator> inversionMoveOperators) {
       foreach (var inversionMoveOperator in inversionMoveOperators) {
-        inversionMoveOperator.InversionMoveParameter.ActualName = Name + "_InversionMove";
+        inversionMoveOperator.InversionMoveParameter.ActualName = Name + ".InversionMove";
       }
     }
     private void ConfigureScrambleMoveOperators(IEnumerable<IPermutationScrambleMoveOperator> scrambleMoveOperators) {
       foreach (var scrambleMoveOperator in scrambleMoveOperators) {
-        scrambleMoveOperator.ScrambleMoveParameter.ActualName = Name + "_ScambleMove";
+        scrambleMoveOperator.ScrambleMoveParameter.ActualName = Name + ".ScambleMove";
       }
     }
     private void ConfigureSwap2MoveOperators(IEnumerable<IPermutationSwap2MoveOperator> swap2MoveOperators) {
       foreach (var swap2MoveOperator in swap2MoveOperators) {
-        swap2MoveOperator.Swap2MoveParameter.ActualName = Name + "_Swap2Move";
+        swap2MoveOperator.Swap2MoveParameter.ActualName = Name + ".Swap2Move";
       }
     }
     private void ConfigureTranslocationMoveOperators(IEnumerable<IPermutationTranslocationMoveOperator> translocationMoveOperators) {
       foreach (var translocationMoveOperator in translocationMoveOperators) {
-        translocationMoveOperator.TranslocationMoveParameter.ActualName = Name + "_TranslocationMove";
+        translocationMoveOperator.TranslocationMoveParameter.ActualName = Name + ".TranslocationMove";
       }
     }
Index: branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/RealEncoding.cs
===================================================================
--- branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/RealEncoding.cs	(revision 11588)
+++ branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/RealEncoding.cs	(revision 11593)
@@ -100,6 +100,8 @@
       bounds[0, 1] = max;
 
-      LengthParameter = new FixedValueParameter<IntValue>(Name + "Length", new IntValue(length));
-      BoundsParameter = new ValueParameter<DoubleMatrix>(Name + "Bounds", bounds);
+      lengthParameter = new FixedValueParameter<IntValue>(Name + ".Length", new IntValue(length));
+      boundsParameter = new ValueParameter<DoubleMatrix>(Name + ".Bounds", bounds);
+      Parameters.Add(lengthParameter);
+      Parameters.Add(boundsParameter);
 
       SolutionCreator = new UniformRandomRealVectorCreator();
@@ -119,6 +121,6 @@
         bounds[i, 1] = max[i];
       }
-      LengthParameter = new FixedValueParameter<IntValue>(Name + "Length", new IntValue(length));
-      BoundsParameter = new ValueParameter<DoubleMatrix>(Name + "Bounds", bounds);
+      LengthParameter = new FixedValueParameter<IntValue>(Name + ".Length", new IntValue(length));
+      BoundsParameter = new ValueParameter<DoubleMatrix>(Name + ".Bounds", bounds);
 
       SolutionCreator = new UniformRandomRealVectorCreator();
@@ -228,5 +230,5 @@
           var p = sm.StrategyParameterParameter as ILookupParameter;
           if (p != null) {
-            p.ActualName = Name + "Strategy";
+            p.ActualName = Name + ".Strategy";
           }
         }
@@ -244,10 +246,10 @@
           c.BoundsParameter.Value = (DoubleMatrix)bounds.Clone();
           c.LengthParameter.ActualName = LengthParameter.Name;
-          c.StrategyParameterParameter.ActualName = Name + "Strategy";
+          c.StrategyParameterParameter.ActualName = Name + ".Strategy";
         }
         var m = s as IRealVectorStdDevStrategyParameterManipulator;
         if (m != null) {
           m.BoundsParameter.Value = (DoubleMatrix)bounds.Clone();
-          m.StrategyParameterParameter.ActualName = Name + "Strategy";
+          m.StrategyParameterParameter.ActualName = Name + ".Strategy";
         }
         var mm = s as StdDevStrategyVectorManipulator;
@@ -258,6 +260,6 @@
         var x = s as IRealVectorStdDevStrategyParameterCrossover;
         if (x != null) {
-          x.ParentsParameter.ActualName = Name + "Strategy";
-          x.StrategyParameterParameter.ActualName = Name + "Strategy";
+          x.ParentsParameter.ActualName = Name + ".Strategy";
+          x.StrategyParameterParameter.ActualName = Name + ".Strategy";
         }
       }
@@ -304,5 +306,5 @@
     private void ConfigureAdditiveMoveOperator(IEnumerable<IAdditiveRealVectorMoveOperator> additiveMoveOperators) {
       foreach (var additiveMoveOperator in additiveMoveOperators) {
-        additiveMoveOperator.AdditiveMoveParameter.ActualName = Name + "_AdditiveMove";
+        additiveMoveOperator.AdditiveMoveParameter.ActualName = Name + ".AdditiveMove";
       }
     }
Index: branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/MultiEncodingOperator.cs
===================================================================
--- branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/MultiEncodingOperator.cs	(revision 11588)
+++ branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/MultiEncodingOperator.cs	(revision 11593)
@@ -45,5 +45,5 @@
       if (Parameters.ContainsKey(encoding.Name)) throw new ArgumentException(string.Format("Encoding {0} was already added.", encoding.Name));
       var param = new ConstrainedValueParameter<T>(encoding.Name, new ItemSet<T>(encoding.Operators.OfType<T>()));
-
+      param.Value = param.ValidValues.First();
       Parameters.Add(param);
     }
