Index: /branches/2521_ProblemRefactoring/HeuristicLab.Algorithms.DataAnalysis/3.4/GaussianProcess/GaussianProcessCovarianceOptimizationProblem.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Algorithms.DataAnalysis/3.4/GaussianProcess/GaussianProcessCovarianceOptimizationProblem.cs	(revision 17654)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Algorithms.DataAnalysis/3.4/GaussianProcess/GaussianProcessCovarianceOptimizationProblem.cs	(revision 17655)
@@ -181,7 +181,6 @@
       Encoding.TreeLength = 10;
       Encoding.TreeDepth = 5;
-      Encoding.GrammarParameter.ReadOnly = false;
       Encoding.Grammar = g;
-      Encoding.GrammarParameter.ReadOnly = true;
+      Encoding.GrammarParameter.ReadOnly = GrammarRefParameter.ReadOnly = true;
     }
 
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.Binary/3.3/DeceptiveTrapProblem.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.Binary/3.3/DeceptiveTrapProblem.cs	(revision 17654)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.Binary/3.3/DeceptiveTrapProblem.cs	(revision 17655)
@@ -58,5 +58,5 @@
       Parameters.Add(TrapSizeParameter = new FixedValueParameter<IntValue>("Trap Size", "", new IntValue(7)));
       Parameters.Add(NumberOfTrapsParameter = new FixedValueParameter<IntValue>("Number of Traps", "", new IntValue(7)));
-      DimensionRefParameter.ReadOnly = true;
+      Encoding.LengthParameter.ReadOnly = DimensionRefParameter.ReadOnly = true;
       Dimension = TrapSize * NumberOfTraps;
 
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.GeneticProgramming/3.3/ArtificialAnt/Problem.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.GeneticProgramming/3.3/ArtificialAnt/Problem.cs	(revision 17654)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.GeneticProgramming/3.3/ArtificialAnt/Problem.cs	(revision 17655)
@@ -126,7 +126,6 @@
       Encoding.TreeLength = 20;
       Encoding.TreeDepth = 10;
-      Encoding.GrammarParameter.ReadOnly = false;
       Encoding.Grammar = g;
-      Encoding.GrammarParameter.ReadOnly = true;
+      Encoding.GrammarParameter.ReadOnly = GrammarRefParameter.ReadOnly = true;
 
       BestKnownQuality = 89;
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.GeneticProgramming/3.3/BasicSymbolicRegression/Problem.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.GeneticProgramming/3.3/BasicSymbolicRegression/Problem.cs	(revision 17654)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.GeneticProgramming/3.3/BasicSymbolicRegression/Problem.cs	(revision 17655)
@@ -175,7 +175,6 @@
       }
 
-      Encoding.GrammarParameter.ReadOnly = false;
       Encoding.Grammar = g;
-      Encoding.GrammarParameter.ReadOnly = true;
+      Encoding.GrammarParameter.ReadOnly = GrammarRefParameter.ReadOnly = true;
     }
     #endregion
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.GeneticProgramming/3.3/Boolean/EvenParityProblem.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.GeneticProgramming/3.3/Boolean/EvenParityProblem.cs	(revision 17654)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.GeneticProgramming/3.3/Boolean/EvenParityProblem.cs	(revision 17655)
@@ -95,9 +95,7 @@
         g.AddTerminalSymbol(string.Format("{0}", i));
 
-      Encoding.GrammarParameter.ReadOnly = false;
       Encoding.Grammar = g;
-      Encoding.GrammarParameter.ReadOnly = true;
+      Encoding.GrammarParameter.ReadOnly = GrammarRefParameter.ReadOnly = true;
 
-      BestKnownQualityParameter.ReadOnly = false;
       BestKnownQuality = Math.Pow(2, NumberOfBits); // this is a benchmark problem (the best achievable quality is known for a given number of bits)
       BestKnownQualityParameter.ReadOnly = true;
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.GeneticProgramming/3.3/Boolean/MultiplexerProblem.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.GeneticProgramming/3.3/Boolean/MultiplexerProblem.cs	(revision 17654)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.GeneticProgramming/3.3/Boolean/MultiplexerProblem.cs	(revision 17655)
@@ -109,9 +109,7 @@
         g.AddTerminalSymbol(string.Format("d{0}", i));
 
-      Encoding.GrammarParameter.ReadOnly = false;
       Encoding.Grammar = g;
-      Encoding.GrammarParameter.ReadOnly = true;
-
-      BestKnownQualityParameter.ReadOnly = false;
+      Encoding.GrammarParameter.ReadOnly = GrammarRefParameter.ReadOnly = true;
+
       BestKnownQuality = Math.Pow(2, NumberOfBits); // this is a benchmark problem (the best achievable quality is known for a given number of bits)
       BestKnownQualityParameter.ReadOnly = true;
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.GeneticProgramming/3.3/LawnMower/Problem.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.GeneticProgramming/3.3/LawnMower/Problem.cs	(revision 17654)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.GeneticProgramming/3.3/LawnMower/Problem.cs	(revision 17655)
@@ -76,7 +76,6 @@
       Encoding.TreeLength = 1000;
       Encoding.TreeDepth = 17;
-      Encoding.GrammarParameter.ReadOnly = false;
       Encoding.Grammar = g;
-      Encoding.GrammarParameter.ReadOnly = true;
+      Encoding.GrammarParameter.ReadOnly = GrammarRefParameter.ReadOnly = true;
     }
 
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.GeneticProgramming/3.3/robocode/Problem.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.GeneticProgramming/3.3/robocode/Problem.cs	(revision 17654)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.GeneticProgramming/3.3/robocode/Problem.cs	(revision 17655)
@@ -88,4 +88,5 @@
       Encoding.FunctionArguments = 0;
       Encoding.FunctionDefinitions = 0;
+      Encoding.GrammarParameter.ReadOnly = GrammarRefParameter.ReadOnly = true;
 
       RegisterEventHandlers();
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.GraphColoring/3.3/GraphColoringProblem.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.GraphColoring/3.3/GraphColoringProblem.cs	(revision 17654)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.GraphColoring/3.3/GraphColoringProblem.cs	(revision 17655)
@@ -74,7 +74,7 @@
     public GraphColoringProblem() {
       Maximization = false;
-      Parameters.Add(adjacencyListParameter = new ValueParameter<IntMatrix>("Adjacency List", "The adjacency list that describes the (symmetric) edges in the graph with nodes from 0 to N-1."));
+      Parameters.Add(adjacencyListParameter = new ValueParameter<IntMatrix>("Adjacency List", "The adjacency list that describes the (symmetric) edges in the graph with nodes from 0 to N-1.") { ReadOnly = true });
       Parameters.Add(fitnessFunctionParameter = new ValueParameter<EnumValue<FitnessFunction>>("Fitness Function", "The function to use for evaluating the quality of a solution.", new EnumValue<FitnessFunction>(FitnessFunction.Penalized)));
-      Parameters.Add(bestKnownColorsParameter = new OptionalValueParameter<IntValue>("BestKnownColors", "The least amount of colors in a valid coloring."));
+      Parameters.Add(bestKnownColorsParameter = new OptionalValueParameter<IntValue>("BestKnownColors", "The least amount of colors in a valid coloring.") { ReadOnly = true });
 
       var imat = new IntMatrix(defaultInstance.Length, 2);
@@ -84,4 +84,5 @@
       }
       Dimension = defaultInstanceNodes;
+      Encoding.LengthParameter.ReadOnly = DimensionRefParameter.ReadOnly = true;
       AdjacencyListParameter.Value = imat;
       BestKnownQualityParameter.Value = null;
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.Knapsack/3.3/KnapsackProblem.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.Knapsack/3.3/KnapsackProblem.cs	(revision 17654)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.Knapsack/3.3/KnapsackProblem.cs	(revision 17655)
@@ -77,5 +77,5 @@
     public KnapsackProblem()
       : base(new BinaryVectorEncoding("Selection")) {
-      DimensionRefParameter.ReadOnly = true;
+      Encoding.LengthParameter.ReadOnly = DimensionRefParameter.ReadOnly = true;
       Maximization = true;
       Parameters.Add(KnapsackCapacityParameter = new ValueParameter<IntValue>("KnapsackCapacity", "Capacity of the Knapsack.", new IntValue(1)));
