Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/BinaryVectorComparers/AverageBitBinaryVectorComparer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/BinaryVectorComparers/AverageBitBinaryVectorComparer.cs	(revision 12576)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/BinaryVectorComparers/AverageBitBinaryVectorComparer.cs	(revision 12582)
@@ -27,14 +27,11 @@
 
 namespace HeuristicLab.Problems.NK {
-
   [Item("Average Bit Binary Vector Comparer", "Compares two binary vectors by their average positive bit location")]
   [StorableClass]
-  public sealed class AverageBitBinaryVectorComparer : BinaryVectorComparer {
-
+  public sealed class AverageBitBinaryVectorComparer : Item, IBinaryVectorComparer {
     [StorableConstructor]
     private AverageBitBinaryVectorComparer(bool deserializing) : base(deserializing) { }
     private AverageBitBinaryVectorComparer(AverageBitBinaryVectorComparer original, Cloner cloner)
-      : base(original, cloner) {
-    }
+      : base(original, cloner) { }
     public AverageBitBinaryVectorComparer() { }
     public override IDeepCloneable Clone(Cloner cloner) {
@@ -42,9 +39,9 @@
     }
 
-    public static double AverageBit(BinaryVector x) {
+    private static double AverageBit(BinaryVector x) {
       return x.Select((b, i) => new { b, i }).Where(v => v.b).Average(v => v.i);
     }
 
-    public override int Compare(BinaryVector x, BinaryVector y) {
+    public int Compare(BinaryVector x, BinaryVector y) {
       return (AverageBit(x) - AverageBit(y)).CompareTo(0);
     }
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/BinaryVectorComparers/BinaryVectorComparer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/BinaryVectorComparers/BinaryVectorComparer.cs	(revision 12576)
+++ 	(revision )
@@ -1,46 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.Collections.Generic;
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-using HeuristicLab.Encodings.BinaryVectorEncoding;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Problems.NK {
-  [StorableClass]
-  public abstract class BinaryVectorComparer : NamedItem, IBinaryVectorComparer {
-
-    public override bool CanChangeName { get { return false; } }
-    public override bool CanChangeDescription { get { return false; } }
-
-    [StorableConstructor]
-    protected BinaryVectorComparer(bool serializing) : base(serializing) { }
-    protected BinaryVectorComparer(BinaryVectorComparer original, Cloner cloner)
-      : base(original, cloner) { }
-    public BinaryVectorComparer() {
-      name = ItemName;
-      description = ItemDescription;
-    }
-
-    public abstract int Compare(BinaryVector x, BinaryVector y);
-  }
-}
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/BinaryVectorComparers/IBinaryVectorComparer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/BinaryVectorComparers/IBinaryVectorComparer.cs	(revision 12576)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/BinaryVectorComparers/IBinaryVectorComparer.cs	(revision 12582)
@@ -25,4 +25,4 @@
 
 namespace HeuristicLab.Problems.NK {
-  public interface IBinaryVectorComparer : INamedItem, IComparer<BinaryVector> { }
+  public interface IBinaryVectorComparer : IItem, IComparer<BinaryVector> { }
 }
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/BinaryVectorComparers/LexicographicBinaryVectorComparer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/BinaryVectorComparers/LexicographicBinaryVectorComparer.cs	(revision 12576)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/BinaryVectorComparers/LexicographicBinaryVectorComparer.cs	(revision 12582)
@@ -27,14 +27,11 @@
 
 namespace HeuristicLab.Problems.NK {
-
   [Item("Lexicographic Binary Vector Comparer", "Compares two binary vectors lexicographically")]
   [StorableClass]
-  public sealed class LexicographicBinaryVectorComparer : BinaryVectorComparer {
-
+  public sealed class LexicographicBinaryVectorComparer : Item, IBinaryVectorComparer {
     [StorableConstructor]
     private LexicographicBinaryVectorComparer(bool deserializing) : base(deserializing) { }
     private LexicographicBinaryVectorComparer(LexicographicBinaryVectorComparer original, Cloner cloner)
-      : base(original, cloner) {
-    }
+      : base(original, cloner) { }
     public LexicographicBinaryVectorComparer() { }
     public override IDeepCloneable Clone(Cloner cloner) {
@@ -42,5 +39,5 @@
     }
 
-    public override int Compare(BinaryVector x, BinaryVector y) {
+    public int Compare(BinaryVector x, BinaryVector y) {
       for (int i = 0; i < Math.Min(x.Length, y.Length); i++) {
         if (!x[i] && y[i])
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/BinaryVectorComparers/MedianBitBinaryVectorComparer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/BinaryVectorComparers/MedianBitBinaryVectorComparer.cs	(revision 12576)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/BinaryVectorComparers/MedianBitBinaryVectorComparer.cs	(revision 12582)
@@ -27,14 +27,11 @@
 
 namespace HeuristicLab.Problems.NK {
-
   [Item("Median Bit Binary Vector Comparer", "Compares two binary vectors by the median positive bit location")]
   [StorableClass]
-  public sealed class MedianBitBinaryVectorComparer : BinaryVectorComparer {
-
+  public sealed class MedianBitBinaryVectorComparer : Item, IBinaryVectorComparer {
     [StorableConstructor]
     private MedianBitBinaryVectorComparer(bool deserializing) : base(deserializing) { }
     private MedianBitBinaryVectorComparer(MedianBitBinaryVectorComparer original, Cloner cloner)
-      : base(original, cloner) {
-    }
+      : base(original, cloner) { }
     public MedianBitBinaryVectorComparer() { }
     public override IDeepCloneable Clone(Cloner cloner) {
@@ -42,5 +39,5 @@
     }
 
-    public static int MedianBit(BinaryVector x) {
+    private static int MedianBit(BinaryVector x) {
       var activeIndices = x.Select((b, i) => new { b, i }).Where(v => v.b).ToList();
       if (activeIndices.Count > 0)
@@ -49,5 +46,6 @@
         return 0;
     }
-    public override int Compare(BinaryVector x, BinaryVector y) {
+
+    public int Compare(BinaryVector x, BinaryVector y) {
       return MedianBit(x) - MedianBit(y);
     }
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/HeuristicLab.Problems.NK.csproj
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/HeuristicLab.Problems.NK.csproj	(revision 12576)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/HeuristicLab.Problems.NK.csproj	(revision 12582)
@@ -157,5 +157,4 @@
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="BinaryVectorComparers\BinaryVectorComparer.cs" />
     <Compile Include="BinaryVectorComparers\IBinaryVectorComparer.cs" />
     <Compile Include="BinaryVectorComparers\LexicographicBinaryVectorComparer.cs" />
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/IInteractionInitializer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/IInteractionInitializer.cs	(revision 12576)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/IInteractionInitializer.cs	(revision 12582)
@@ -24,5 +24,5 @@
 
 namespace HeuristicLab.Problems.NK {
-  public interface IInteractionInitializer : INamedItem {
+  public interface IInteractionInitializer : IItem {
     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 12576)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/IncreasingBlockSizeInteractionsInitializer.cs	(revision 12582)
@@ -29,21 +29,15 @@
 
 namespace HeuristicLab.Problems.NK {
-
   [Item("IncreasingBlockSizeInteractionsInitializer", "Randomly assignes interactions across all bits but makes sure that different numbers of ineractions are applied to different bits.")]
   [StorableClass]
-  public class IncreasingBlockSizeInteractionsInitializer : ParameterizedNamedItem, IInteractionInitializer {
-
+  public sealed class IncreasingBlockSizeInteractionsInitializer : Item, IInteractionInitializer {
     [StorableConstructor]
-    protected IncreasingBlockSizeInteractionsInitializer(bool serializing) : base(serializing) { }
-    protected IncreasingBlockSizeInteractionsInitializer(IncreasingBlockSizeInteractionsInitializer original, Cloner cloner) : base(original, cloner) { }
-    public IncreasingBlockSizeInteractionsInitializer() {
-    }
-
-
+    private IncreasingBlockSizeInteractionsInitializer(bool serializing) : base(serializing) { }
+    private IncreasingBlockSizeInteractionsInitializer(IncreasingBlockSizeInteractionsInitializer original, Cloner cloner) : base(original, cloner) { }
+    public IncreasingBlockSizeInteractionsInitializer() { }
     public override IDeepCloneable Clone(Cloner cloner) {
       return new IncreasingBlockSizeInteractionsInitializer(this, cloner);
     }
 
-    #region IInteractionInitializer Members
     public BoolMatrix InitializeInterations(int length, int nComponents, int nInteractions, IRandom random) {
       Dictionary<int, int> bitInteractionCounts = new Dictionary<int, int>();
@@ -77,5 +71,4 @@
       return m;
     }
-    #endregion
   }
 }
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/LimitedRandomInteractionsInitializer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/LimitedRandomInteractionsInitializer.cs	(revision 12576)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/LimitedRandomInteractionsInitializer.cs	(revision 12582)
@@ -29,9 +29,7 @@
 
 namespace HeuristicLab.Problems.NK {
-
   [Item("LimitedRandomInteractionsInitializer", "Randomly assignes interactions across bits in the vicinity of each other respecting the maximum distances if possible.")]
   [StorableClass]
-  public class LimitedRandomInteractionsInitializer : ParameterizedNamedItem, IInteractionInitializer {
-
+  public sealed class LimitedRandomInteractionsInitializer : ParameterizedNamedItem, IInteractionInitializer {
     private class Bounds {
       public readonly int Min;
@@ -53,4 +51,16 @@
     }
 
+    [StorableConstructor]
+    private LimitedRandomInteractionsInitializer(bool serializing) : base(serializing) { }
+    private LimitedRandomInteractionsInitializer(LimitedRandomInteractionsInitializer original, Cloner cloner) : base(original, cloner) { }
+    public LimitedRandomInteractionsInitializer() {
+      Parameters.Add(new ValueParameter<IntValue>("MaximumDistance", "Maximum distance of interactions in bits or 0 for unlimited"));
+      Parameters.Add(new ValueParameter<DoubleValue>("MaximumDistanceRatio", "Maximum distance of interactions as ratio of the total length or 0 for unlimited"));
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new LimitedRandomInteractionsInitializer(this, cloner);
+    }
+
     private int MaximumDistance(int length, int nInteractions) {
       int maxBitDist = MaximumDistanceParameter.Value.Value;
@@ -64,17 +74,4 @@
     }
 
-    [StorableConstructor]
-    protected LimitedRandomInteractionsInitializer(bool serializing) : base(serializing) { }
-    protected LimitedRandomInteractionsInitializer(LimitedRandomInteractionsInitializer original, Cloner cloner) : base(original, cloner) { }
-    public LimitedRandomInteractionsInitializer() {
-      Parameters.Add(new ValueParameter<IntValue>("MaximumDistance", "Maximum distance of interactions in bits or 0 for unlimited"));
-      Parameters.Add(new ValueParameter<DoubleValue>("MaximumDistanceRatio", "Maximum distance of interactions as ratio of the total length or 0 for unlimited"));
-    }
-
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new LimitedRandomInteractionsInitializer(this, cloner);
-    }
-
-    #region IInteractionInitializer Members
     public BoolMatrix InitializeInterations(int length, int nComponents, int nInteractions, IRandom random) {
       BoolMatrix m = new BoolMatrix(length, nComponents);
@@ -97,5 +94,4 @@
       return m;
     }
-    #endregion
   }
 }
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/RandomInteractionsInitializer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/RandomInteractionsInitializer.cs	(revision 12576)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/RandomInteractionsInitializer.cs	(revision 12582)
@@ -27,25 +27,15 @@
 
 namespace HeuristicLab.Problems.NK {
-
   [Item("RandomInteractionsInitializer", "Randomly assignes interactions across all bits")]
   [StorableClass]
-  public class RandomInteractionsInitializer : NamedItem, IInteractionInitializer {
-
-    public override bool CanChangeName { get { return false; } }
-    public override bool CanChangeDescription { get { return false; } }
-
-
+  public sealed class RandomInteractionsInitializer : Item, IInteractionInitializer {
     [StorableConstructor]
-    protected RandomInteractionsInitializer(bool serializing) : base(serializing) { }
-    protected RandomInteractionsInitializer(RandomInteractionsInitializer original, Cloner cloner) : base(original, cloner) { }
-    public RandomInteractionsInitializer() {
-      name = ItemName;
-      description = ItemDescription;
-    }
+    private RandomInteractionsInitializer(bool serializing) : base(serializing) { }
+    private RandomInteractionsInitializer(RandomInteractionsInitializer original, Cloner cloner) : base(original, cloner) { }
+    public RandomInteractionsInitializer() { }
     public override IDeepCloneable Clone(Cloner cloner) {
       return new RandomInteractionsInitializer(this, cloner);
     }
 
-    #region IInteractionInitializer Members
     public BoolMatrix InitializeInterations(int length, int nComponents, int nInteractions, IRandom random) {
       BoolMatrix m = new BoolMatrix(length, nComponents);
@@ -65,5 +55,4 @@
       return m;
     }
-    #endregion
   }
 }
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/SortedRandomInteractionsInitializer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/SortedRandomInteractionsInitializer.cs	(revision 12576)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/InteractionInitializers/SortedRandomInteractionsInitializer.cs	(revision 12582)
@@ -30,8 +30,7 @@
 
 namespace HeuristicLab.Problems.NK {
-
   [Item("SortedRandomInteractionsInitializer", "Randomly assigns interactions across all bits and sorts components according to bit affinity.")]
   [StorableClass]
-  public class SortedRandomInteractionsInitializer : ParameterizedNamedItem, IInteractionInitializer {
+  public sealed class SortedRandomInteractionsInitializer : ParameterizedNamedItem, IInteractionInitializer {
     public IConstrainedValueParameter<IBinaryVectorComparer> ComparerParameter {
       get { return (IConstrainedValueParameter<IBinaryVectorComparer>)Parameters["Comparer"]; }
@@ -42,6 +41,6 @@
 
     [StorableConstructor]
-    protected SortedRandomInteractionsInitializer(bool serializing) : base(serializing) { }
-    protected SortedRandomInteractionsInitializer(SortedRandomInteractionsInitializer original, Cloner cloner) : base(original, cloner) { }
+    private SortedRandomInteractionsInitializer(bool serializing) : base(serializing) { }
+    private SortedRandomInteractionsInitializer(SortedRandomInteractionsInitializer original, Cloner cloner) : base(original, cloner) { }
     public SortedRandomInteractionsInitializer() {
       Parameters.Add(new ConstrainedValueParameter<IBinaryVectorComparer>("Comparer", "Comparison for sorting of component functions."));
@@ -59,5 +58,4 @@
     }
 
-    #region IInteractionInitializer Members
     public BoolMatrix InitializeInterations(int length, int nComponents, int nInteractions, IRandom random) {
       BinaryVector[] components = Enumerable.Range(0, nComponents).Select(i => new BinaryVector(length)).ToArray();
@@ -83,5 +81,4 @@
       return m;
     }
-    #endregion
   }
 }
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/NKLandscape.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/NKLandscape.cs	(revision 12576)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/NKLandscape.cs	(revision 12582)
@@ -31,5 +31,4 @@
 using HeuristicLab.PluginInfrastructure;
 using HeuristicLab.Problems.Binary;
-using HeuristicLab.Problems.NK.WeightInitializers;
 using HeuristicLab.Random;
 
@@ -246,12 +245,12 @@
 
     #region Evaluation function
-    public static long Hash(long x, HashAlgorithm hashAlg) {
+    private static long Hash(long x, HashAlgorithm hashAlg) {
       return BitConverter.ToInt64(hashAlg.ComputeHash(BitConverter.GetBytes(x), 0, 8), 0);
     }
 
     public static double F_i(long x, long i, long g_i, long seed, int q, double p) {
-      var hash = new Func<long,long>(y => Hash(y, HashAlgorithm));
+      var hash = new Func<long, long>(y => Hash(y, HashAlgorithm));
       var fi = Math.Abs((double)hash((x & g_i) ^ hash(g_i ^ hash(i ^ seed)))) / long.MaxValue;
-      if (q > 0) { fi = Math.Round(fi*q)/q; }
+      if (q > 0) { fi = Math.Round(fi * q) / q; }
       if (p > 0) {
         hash = y => Hash(y, HashAlgorithmP);
@@ -262,5 +261,5 @@
     }
 
-    public static double F(long x, long[] g, double[] w, long seed, ref double[] f_i, int q, double p) {
+    private static double F(long x, long[] g, double[] w, long seed, ref double[] f_i, int q, double p) {
       double value = 0;
       for (int i = 0; i < g.Length; i++) {
@@ -311,5 +310,5 @@
 
     public override double Evaluate(BinaryVector vector, IRandom random) {
-      double[] f_i;//not used atm
+      double[] f_i; //useful for debugging
       double quality = Evaluate(vector, GeneInteractions, Weights, InteractionSeed.Value, out f_i, Q, P);
       return quality;
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/EqualWeightsInitializer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/EqualWeightsInitializer.cs	(revision 12576)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/EqualWeightsInitializer.cs	(revision 12582)
@@ -25,34 +25,20 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.NK.WeightInitializers {
-
+namespace HeuristicLab.Problems.NK {
   [Item("EqualWeightsInitializer", "Initializes all weights to 1.0.")]
   [StorableClass]
-  public class EqualWeightsInitializer : NamedItem, IWeightsInitializer {
-
-    public override bool CanChangeName { get { return false; } }
-    public override bool CanChangeDescription { get { return false; } }
-
+  public sealed class EqualWeightsInitializer : Item, IWeightsInitializer {
     [StorableConstructor]
-    protected EqualWeightsInitializer(bool deserializing) : base(deserializing) { }
-    protected EqualWeightsInitializer(EqualWeightsInitializer original, Cloner cloner)
-      : base(original, cloner) {
-    }
-    public EqualWeightsInitializer() {
-      name = ItemName;
-      description = ItemDescription;
-    }
+    private EqualWeightsInitializer(bool deserializing) : base(deserializing) { }
+    private EqualWeightsInitializer(EqualWeightsInitializer original, Cloner cloner)
+      : base(original, cloner) { }
+    public EqualWeightsInitializer() { }
     public override IDeepCloneable Clone(Cloner cloner) {
       return new EqualWeightsInitializer(this, cloner);
     }
 
-    #region IWeightsInitializer Members
-
     public IEnumerable<double> GetWeights(int nComponents) {
       return new[] { 1.0 };
     }
-
-    #endregion
   }
-
 }
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/ExponentialDistributionWeightsInitializer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/ExponentialDistributionWeightsInitializer.cs	(revision 12576)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/ExponentialDistributionWeightsInitializer.cs	(revision 12582)
@@ -28,12 +28,8 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.NK.WeightInitializers {
-
+namespace HeuristicLab.Problems.NK {
   [Item("ExponentialDistributionWeightsInitializer", "Assigns exponentially decreasing weights using the rate parameter lambda.")]
   [StorableClass]
-  public class ExponentialDistributionWeightsInitializer : ParameterizedNamedItem, IWeightsInitializer {
-
-    public override bool CanChangeName { get { return false; } }
-    public override bool CanChangeDescription { get { return false; } }
+  public sealed class ExponentialDistributionWeightsInitializer : ParameterizedNamedItem, IWeightsInitializer {
     public IValueParameter<DoubleValue> LambdaParameter {
       get { return (IValueParameter<DoubleValue>)Parameters["Lambda"]; }
@@ -41,6 +37,6 @@
 
     [StorableConstructor]
-    protected ExponentialDistributionWeightsInitializer(bool deserializing) : base(deserializing) { }
-    protected ExponentialDistributionWeightsInitializer(ExponentialDistributionWeightsInitializer original, Cloner cloner)
+    private ExponentialDistributionWeightsInitializer(bool deserializing) : base(deserializing) { }
+    private ExponentialDistributionWeightsInitializer(ExponentialDistributionWeightsInitializer original, Cloner cloner)
       : base(original, cloner) {
     }
@@ -52,5 +48,5 @@
     }
 
-    public static double f(double x, double lambda) {
+    private static double f(double x, double lambda) {
       if (x < 0.0)
         return 0.0;
@@ -58,5 +54,4 @@
     }
 
-    #region IWeightsInitializer Members
     public IEnumerable<double> GetWeights(int nComponents) {
       double lambda = LambdaParameter.Value.Value;
@@ -64,6 +59,4 @@
         yield return f(i, lambda);
     }
-    #endregion
   }
-
 }
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/ExponentialWeightsInitializer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/ExponentialWeightsInitializer.cs	(revision 12576)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/ExponentialWeightsInitializer.cs	(revision 12582)
@@ -26,27 +26,17 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.NK.WeightInitializers {
-
+namespace HeuristicLab.Problems.NK {
   [Item("ExponentialWeightsInitializer", "Assigns exponentially increasing weights.")]
   [StorableClass]
-  public class ExponentialWeightsInitializer : NamedItem, IWeightsInitializer {
-
-    public override bool CanChangeName { get { return false; } }
-    public override bool CanChangeDescription { get { return false; } }
-
+  public sealed class ExponentialWeightsInitializer : Item, IWeightsInitializer {
     [StorableConstructor]
-    protected ExponentialWeightsInitializer(bool deserializing) : base(deserializing) { }
-    protected ExponentialWeightsInitializer(ExponentialWeightsInitializer original, Cloner cloner)
+    private ExponentialWeightsInitializer(bool deserializing) : base(deserializing) { }
+    private ExponentialWeightsInitializer(ExponentialWeightsInitializer original, Cloner cloner)
       : base(original, cloner) {
     }
-    public ExponentialWeightsInitializer() {
-      name = ItemName;
-      description = ItemDescription;
-    }
+    public ExponentialWeightsInitializer() { }
     public override IDeepCloneable Clone(Cloner cloner) {
       return new ExponentialWeightsInitializer(this, cloner);
     }
-
-    #region IWeightsInitializer Members
 
     public IEnumerable<double> GetWeights(int nComponents) {
@@ -54,7 +44,4 @@
         yield return Math.Pow(2, i);
     }
-
-    #endregion
   }
-
 }
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/IWeightsInitializer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/IWeightsInitializer.cs	(revision 12576)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/IWeightsInitializer.cs	(revision 12582)
@@ -24,5 +24,5 @@
 
 namespace HeuristicLab.Problems.NK {
-  public interface IWeightsInitializer : INamedItem {
+  public interface IWeightsInitializer : IItem {
     IEnumerable<double> GetWeights(int nComponents);
   }
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/LinearWeightsInitializer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/LinearWeightsInitializer.cs	(revision 12576)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/LinearWeightsInitializer.cs	(revision 12582)
@@ -25,27 +25,17 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.NK.WeightInitializers {
-
+namespace HeuristicLab.Problems.NK {
   [Item("LinearWeightsInitializer", "Assigns linear increasing weights.")]
   [StorableClass]
-  public class LinearWeightsInitializer : NamedItem, IWeightsInitializer {
-
-    public override bool CanChangeName { get { return false; } }
-    public override bool CanChangeDescription { get { return false; } }
-
+  public sealed class LinearWeightsInitializer : Item, IWeightsInitializer {
     [StorableConstructor]
-    protected LinearWeightsInitializer(bool deserializing) : base(deserializing) { }
-    protected LinearWeightsInitializer(LinearWeightsInitializer original, Cloner cloner)
+    private LinearWeightsInitializer(bool deserializing) : base(deserializing) { }
+    private LinearWeightsInitializer(LinearWeightsInitializer original, Cloner cloner)
       : base(original, cloner) {
     }
-    public LinearWeightsInitializer() {
-      name = ItemName;
-      description = ItemDescription;
-    }
+    public LinearWeightsInitializer() { }
     public override IDeepCloneable Clone(Cloner cloner) {
       return new LinearWeightsInitializer(this, cloner);
     }
-
-    #region IWeightsInitializer Members
 
     public IEnumerable<double> GetWeights(int nComponents) {
@@ -53,7 +43,4 @@
         yield return i;
     }
-
-    #endregion
   }
-
 }
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/ReverseExponentialWeightsInitializer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/ReverseExponentialWeightsInitializer.cs	(revision 12576)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/ReverseExponentialWeightsInitializer.cs	(revision 12582)
@@ -26,27 +26,17 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.NK.WeightInitializers {
-
+namespace HeuristicLab.Problems.NK {
   [Item("ReverseExponentialWeightsInitializer", "Assigns exponentially decreasing weights.")]
   [StorableClass]
-  public class ReverseExponentialWeightsInitializer : NamedItem, IWeightsInitializer {
-
-    public override bool CanChangeName { get { return false; } }
-    public override bool CanChangeDescription { get { return false; } }
-
+  public sealed class ReverseExponentialWeightsInitializer : Item, IWeightsInitializer {
     [StorableConstructor]
-    protected ReverseExponentialWeightsInitializer(bool deserializing) : base(deserializing) { }
-    protected ReverseExponentialWeightsInitializer(ReverseExponentialWeightsInitializer original, Cloner cloner)
+    private ReverseExponentialWeightsInitializer(bool deserializing) : base(deserializing) { }
+    private ReverseExponentialWeightsInitializer(ReverseExponentialWeightsInitializer original, Cloner cloner)
       : base(original, cloner) {
     }
-    public ReverseExponentialWeightsInitializer() {
-      name = ItemName;
-      description = ItemDescription;
-    }
+    public ReverseExponentialWeightsInitializer() { }
     public override IDeepCloneable Clone(Cloner cloner) {
       return new ReverseExponentialWeightsInitializer(this, cloner);
     }
-
-    #region IWeightsInitializer Members
 
     public IEnumerable<double> GetWeights(int nComponents) {
@@ -54,7 +44,4 @@
         yield return Math.Pow(2, i);
     }
-
-    #endregion
   }
-
 }
Index: branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/ReverseLinearWeightsInitializer.cs
===================================================================
--- branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/ReverseLinearWeightsInitializer.cs	(revision 12576)
+++ branches/FitnessLandscapeAnalysis/HeuristicLab.Problems.NK/WeightInitializers/ReverseLinearWeightsInitializer.cs	(revision 12582)
@@ -25,27 +25,17 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.NK.WeightInitializers {
-
+namespace HeuristicLab.Problems.NK {
   [Item("ReverseLinearWeightsInitializer", "Assigns exponentially decreasing weights.")]
   [StorableClass]
-  public class ReverseLinearWeightsInitializer : NamedItem, IWeightsInitializer {
-
-    public override bool CanChangeName { get { return false; } }
-    public override bool CanChangeDescription { get { return false; } }
-
+  public sealed class ReverseLinearWeightsInitializer : Item, IWeightsInitializer {
     [StorableConstructor]
-    protected ReverseLinearWeightsInitializer(bool deserializing) : base(deserializing) { }
-    protected ReverseLinearWeightsInitializer(ReverseLinearWeightsInitializer original, Cloner cloner)
+    private ReverseLinearWeightsInitializer(bool deserializing) : base(deserializing) { }
+    private ReverseLinearWeightsInitializer(ReverseLinearWeightsInitializer original, Cloner cloner)
       : base(original, cloner) {
     }
-    public ReverseLinearWeightsInitializer() {
-      name = ItemName;
-      description = ItemDescription;
-    }
+    public ReverseLinearWeightsInitializer() { }
     public override IDeepCloneable Clone(Cloner cloner) {
       return new ReverseLinearWeightsInitializer(this, cloner);
     }
-
-    #region IWeightsInitializer Members
 
     public IEnumerable<double> GetWeights(int nComponents) {
@@ -53,7 +43,4 @@
         yield return i;
     }
-
-    #endregion
   }
-
 }
