Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/IInteractionInitializer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/IInteractionInitializer.cs	(revision 12582)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/IInteractionInitializer.cs	(revision 12592)
@@ -24,5 +24,5 @@
 
 namespace HeuristicLab.Problems.NK {
-  public interface IInteractionInitializer : IItem {
+  public interface IInteractionInitializer : IParameterizedItem {
     BoolMatrix InitializeInterations(int length, int nComponents, int nInteractions, IRandom random);
   }
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/IncreasingBlockSizeInteractionsInitializer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/IncreasingBlockSizeInteractionsInitializer.cs	(revision 12582)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/IncreasingBlockSizeInteractionsInitializer.cs	(revision 12592)
@@ -31,5 +31,5 @@
   [Item("IncreasingBlockSizeInteractionsInitializer", "Randomly assignes interactions across all bits but makes sure that different numbers of ineractions are applied to different bits.")]
   [StorableClass]
-  public sealed class IncreasingBlockSizeInteractionsInitializer : Item, IInteractionInitializer {
+  public sealed class IncreasingBlockSizeInteractionsInitializer : ParameterizedNamedItem, IInteractionInitializer {
     [StorableConstructor]
     private IncreasingBlockSizeInteractionsInitializer(bool serializing) : base(serializing) { }
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/RandomInteractionsInitializer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/RandomInteractionsInitializer.cs	(revision 12582)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/RandomInteractionsInitializer.cs	(revision 12592)
@@ -29,5 +29,5 @@
   [Item("RandomInteractionsInitializer", "Randomly assignes interactions across all bits")]
   [StorableClass]
-  public sealed class RandomInteractionsInitializer : Item, IInteractionInitializer {
+  public sealed class RandomInteractionsInitializer : ParameterizedNamedItem, IInteractionInitializer {
     [StorableConstructor]
     private RandomInteractionsInitializer(bool serializing) : base(serializing) { }
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/NKLandscape.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/NKLandscape.cs	(revision 12582)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/NKLandscape.cs	(revision 12592)
@@ -34,5 +34,4 @@
 
 namespace HeuristicLab.Problems.NK {
-
   [Item("NK Landscape", "Represents an NK landscape optimization problem.")]
   [Creatable("Problems")]
@@ -156,10 +155,16 @@
       Parameters.Add(new OptionalConstrainedValueParameter<IWeightsInitializer>("WeightsInitializer", "Operator to initialize weights distribution"));
 
+      //allow just the standard NK[P,Q] formulations at the moment
+      WeightsParameter.Hidden = true;
+      InteractionInitializerParameter.Hidden = true;
+      WeightsInitializerParameter.Hidden = true;
+      EncodingParameter.Hidden = true;
+
       InitializeInteractionInitializerParameter();
       InitializeWeightsInitializerParameter();
 
       InitializeOperators();
+      InitializeInteractions();
       RegisterEventHandlers();
-      InitializeInteractions();
     }
 
@@ -180,12 +185,4 @@
     }
 
-    #region Events
-    protected override void LengthParameter_ValueChanged(object sender, EventArgs e) {
-      BestKnownQualityParameter.Value = new DoubleValue(Length);
-      NrOfFitnessComponentsParameter.Value = new IntValue(Length);
-    }
-    #endregion
-
-    #region Helpers
     [StorableHook(HookType.AfterDeserialization)]
     private void AfterDeserialization() {
@@ -194,12 +191,44 @@
 
     private void RegisterEventHandlers() {
-      NrOfInteractionsParameter.ValueChanged += InteractionParameterChanged;
-      NrOfInteractionsParameter.Value.ValueChanged += InteractionParameterChanged;
-      NrOfFitnessComponentsParameter.ValueChanged += InteractionParameterChanged;
-      NrOfFitnessComponentsParameter.Value.ValueChanged += InteractionParameterChanged;
-      InteractionInitializerParameter.ValueChanged += InteractionInitializerParameter_ValueChanged;
+      NrOfInteractionsParameter.ValueChanged += InteractionParameter_ValueChanged;
+      NrOfInteractionsParameter.Value.ValueChanged += InteractionParameter_ValueChanged;
+      NrOfFitnessComponentsParameter.ValueChanged += InteractionParameter_ValueChanged;
+      NrOfFitnessComponentsParameter.Value.ValueChanged += InteractionParameter_ValueChanged;
+      InteractionInitializerParameter.ValueChanged += InteractionParameter_ValueChanged;
       WeightsInitializerParameter.ValueChanged += WeightsInitializerParameter_ValueChanged;
       SeedParameter.ValueChanged += SeedParameter_ValueChanged;
       SeedParameter.Value.ValueChanged += SeedParameter_ValueChanged;
+
+      RegisterInteractionInitializerParameterEvents();
+      RegisterWeightsParameterEvents();
+    }
+
+    private void RegisterWeightsParameterEvents() {
+      foreach (var vv in WeightsInitializerParameter.ValidValues) {
+        foreach (var p in vv.Parameters) {
+          if (p.ActualValue != null && p.ActualValue is IStringConvertibleValue) {
+            var v = (IStringConvertibleValue)p.ActualValue;
+            v.ValueChanged += WeightsInitializerParameter_ValueChanged;
+          }
+        }
+      }
+    }
+
+    private void RegisterInteractionInitializerParameterEvents() {
+      foreach (var vv in InteractionInitializerParameter.ValidValues) {
+        foreach (var p in vv.Parameters) {
+          if (p.ActualValue != null && p.ActualValue is IStringConvertibleValue) {
+            var v = (IStringConvertibleValue)p.ActualValue;
+            v.ValueChanged += InteractionParameter_ValueChanged;
+          } else if (p.ActualValue != null && p is IConstrainedValueParameter<IBinaryVectorComparer>) {
+            ((IConstrainedValueParameter<IBinaryVectorComparer>)p).ValueChanged +=
+              InteractionParameter_ValueChanged;
+          }
+        }
+      }
+    }
+
+    protected override void LengthParameter_ValueChanged(object sender, EventArgs e) {
+      NrOfFitnessComponentsParameter.Value = new IntValue(Length);
     }
 
@@ -214,9 +243,5 @@
     }
 
-    private void InteractionInitializerParameter_ValueChanged(object sender, EventArgs e) {
-      InitializeInteractions();
-    }
-
-    private void InteractionParameterChanged(object sender, EventArgs e) {
+    private void InteractionParameter_ValueChanged(object sender, EventArgs e) {
       InitializeInteractions();
     }
@@ -242,5 +267,4 @@
           .ToArray());
     }
-    #endregion
 
     #region Evaluation function
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/EqualWeightsInitializer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/EqualWeightsInitializer.cs	(revision 12582)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/EqualWeightsInitializer.cs	(revision 12592)
@@ -28,5 +28,5 @@
   [Item("EqualWeightsInitializer", "Initializes all weights to 1.0.")]
   [StorableClass]
-  public sealed class EqualWeightsInitializer : Item, IWeightsInitializer {
+  public sealed class EqualWeightsInitializer : ParameterizedNamedItem, IWeightsInitializer {
     [StorableConstructor]
     private EqualWeightsInitializer(bool deserializing) : base(deserializing) { }
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/ExponentialWeightsInitializer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/ExponentialWeightsInitializer.cs	(revision 12582)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/ExponentialWeightsInitializer.cs	(revision 12592)
@@ -29,5 +29,5 @@
   [Item("ExponentialWeightsInitializer", "Assigns exponentially increasing weights.")]
   [StorableClass]
-  public sealed class ExponentialWeightsInitializer : Item, IWeightsInitializer {
+  public sealed class ExponentialWeightsInitializer : ParameterizedNamedItem, IWeightsInitializer {
     [StorableConstructor]
     private ExponentialWeightsInitializer(bool deserializing) : base(deserializing) { }
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/IWeightsInitializer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/IWeightsInitializer.cs	(revision 12582)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/IWeightsInitializer.cs	(revision 12592)
@@ -24,5 +24,5 @@
 
 namespace HeuristicLab.Problems.NK {
-  public interface IWeightsInitializer : IItem {
+  public interface IWeightsInitializer : IParameterizedItem {
     IEnumerable<double> GetWeights(int nComponents);
   }
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/LinearWeightsInitializer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/LinearWeightsInitializer.cs	(revision 12582)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/LinearWeightsInitializer.cs	(revision 12592)
@@ -28,5 +28,5 @@
   [Item("LinearWeightsInitializer", "Assigns linear increasing weights.")]
   [StorableClass]
-  public sealed class LinearWeightsInitializer : Item, IWeightsInitializer {
+  public sealed class LinearWeightsInitializer : ParameterizedNamedItem, IWeightsInitializer {
     [StorableConstructor]
     private LinearWeightsInitializer(bool deserializing) : base(deserializing) { }
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/ReverseExponentialWeightsInitializer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/ReverseExponentialWeightsInitializer.cs	(revision 12582)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/ReverseExponentialWeightsInitializer.cs	(revision 12592)
@@ -29,5 +29,5 @@
   [Item("ReverseExponentialWeightsInitializer", "Assigns exponentially decreasing weights.")]
   [StorableClass]
-  public sealed class ReverseExponentialWeightsInitializer : Item, IWeightsInitializer {
+  public sealed class ReverseExponentialWeightsInitializer : ParameterizedNamedItem, IWeightsInitializer {
     [StorableConstructor]
     private ReverseExponentialWeightsInitializer(bool deserializing) : base(deserializing) { }
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/ReverseLinearWeightsInitializer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/ReverseLinearWeightsInitializer.cs	(revision 12582)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/ReverseLinearWeightsInitializer.cs	(revision 12592)
@@ -28,5 +28,5 @@
   [Item("ReverseLinearWeightsInitializer", "Assigns exponentially decreasing weights.")]
   [StorableClass]
-  public sealed class ReverseLinearWeightsInitializer : Item, IWeightsInitializer {
+  public sealed class ReverseLinearWeightsInitializer : ParameterizedNamedItem, IWeightsInitializer {
     [StorableConstructor]
     private ReverseLinearWeightsInitializer(bool deserializing) : base(deserializing) { }
