Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueView.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueView.cs	(revision 4831)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueView.cs	(revision 4832)
@@ -35,5 +35,5 @@
       var typeSelectorDialog = new TypeSelectorDialog();
       typeSelectorDialog.Caption = "Select Value";
-      typeSelectorDialog.TypeSelector.Configure(Content.Parameter.DataType, false, true);
+      typeSelectorDialog.TypeSelector.Configure(Content.ValueType, false, true);
 
       if (typeSelectorDialog.ShowDialog(this) == DialogResult.OK) {
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Analyzers/BestParameterConfigurationAnalyzer.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Analyzers/BestParameterConfigurationAnalyzer.cs	(revision 4832)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Analyzers/BestParameterConfigurationAnalyzer.cs	(revision 4832)
@@ -0,0 +1,75 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Operators;
+using HeuristicLab.Optimization;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Core;
+using HeuristicLab.Parameters;
+using HeuristicLab.Data;
+using HeuristicLab.Common;
+
+namespace HeuristicLab.Problems.MetaOptimization {
+  /// <summary>
+  /// TODO An operator for analyzing the best solution of Traveling Salesman Problems given in path representation using city coordinates.
+  /// </summary>
+  [Item("BestQualityAnalyzer", "TODO An operator for analyzing the best solution of Traveling Salesman Problems given in path representation using city coordinates.")]
+  [StorableClass]
+  public sealed class BestParameterConfigurationAnalyzer : SingleSuccessorOperator, IAnalyzer {
+    // Wagner: Spezielle View für die Lösungen (ParameterConfigurations): So wie bei Runs: die zu Optimierenden Parameter(-werte) der besten solution anzeigen
+
+    public ScopeTreeLookupParameter<IParameterConfiguration> ParameterVectorParameter {
+      get { return (ScopeTreeLookupParameter<IParameterConfiguration>)Parameters["ParameterConfiguration"]; }
+    }
+    public ScopeTreeLookupParameter<DoubleValue> QualityParameter {
+      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
+    }
+    public LookupParameter<IParameterConfiguration> BestSolutionParameter {
+      get { return (LookupParameter<IParameterConfiguration>)Parameters["BestSolution"]; }
+    }
+    public ValueLookupParameter<ResultCollection> ResultsParameter {
+      get { return (ValueLookupParameter<ResultCollection>)Parameters["Results"]; }
+    }
+    public LookupParameter<DoubleValue> BestKnownQualityParameter {
+      get { return (LookupParameter<DoubleValue>)Parameters["BestKnownQuality"]; }
+    }
+    public LookupParameter<IParameterConfiguration> BestKnownSolutionParameter {
+      get { return (LookupParameter<IParameterConfiguration>)Parameters["BestKnownSolution"]; }
+    }
+
+    public BestParameterConfigurationAnalyzer() : base() {
+      Parameters.Add(new ScopeTreeLookupParameter<IParameterConfiguration>("ParameterConfiguration", "TODO The TSP solutions given in path representation from which the best solution should be analyzed."));
+      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "TODO The qualities of the TSP solutions which should be analyzed."));
+      Parameters.Add(new LookupParameter<IParameterConfiguration>("BestSolution", "TODO The best TSP solution."));
+      Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "TODO The result collection where the best TSP solution should be stored."));
+      Parameters.Add(new LookupParameter<DoubleValue>("BestKnownQuality", "TODO The quality of the best known solution of this TSP instance."));
+      Parameters.Add(new LookupParameter<IParameterConfiguration>("BestKnownSolution", "TODO The best known solution of this TSP instance."));
+    }
+
+    [StorableConstructor]
+    private BestParameterConfigurationAnalyzer(bool deserializing) : base(deserializing) { }
+    private BestParameterConfigurationAnalyzer(BestParameterConfigurationAnalyzer original, Cloner cloner) : base(original, cloner) { }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new BestParameterConfigurationAnalyzer(this, cloner);
+    }
+
+    public override IOperation Apply() {
+      ItemArray<DoubleValue> qualities = QualityParameter.ActualValue;
+      ResultCollection results = ResultsParameter.ActualValue;
+      DoubleValue bestKnownQuality = BestKnownQualityParameter.ActualValue;
+      ItemArray<IParameterConfiguration> parameterVectors = ParameterVectorParameter.ActualValue;
+
+      int i = qualities.Select((x, index) => new { index, x.Value }).OrderBy(x => x.Value).First().index;
+
+      if (bestKnownQuality == null || qualities[i].Value < bestKnownQuality.Value) {
+        BestKnownQualityParameter.ActualValue = new DoubleValue(qualities[i].Value);
+        BestKnownSolutionParameter.ActualValue = (IParameterConfiguration)parameterVectors[i].Clone();
+      }
+
+      // todo: more
+
+      return base.Apply();
+    }
+  }
+}
Index: anches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Analyzers/BestQualityAnalyzer.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Analyzers/BestQualityAnalyzer.cs	(revision 4831)
+++ 	(revision )
@@ -1,76 +1,0 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Operators;
-using HeuristicLab.Optimization;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Core;
-using HeuristicLab.Parameters;
-using HeuristicLab.Data;
-using HeuristicLab.Common;
-
-namespace HeuristicLab.Problems.MetaOptimization {
-  /// <summary>
-  /// TODO An operator for analyzing the best solution of Traveling Salesman Problems given in path representation using city coordinates.
-  /// </summary>
-  [Item("BestQualityAnalyzer", "TODO An operator for analyzing the best solution of Traveling Salesman Problems given in path representation using city coordinates.")]
-  [StorableClass]
-  public sealed class BestParameterConfigurationAnalyzer : SingleSuccessorOperator, IAnalyzer {
-    // Wagner: Spezielle View für die Lösungen (ParameterConfigurations): So wie bei Runs: die zu Optimierenden Parameter(-werte) der besten solution anzeigen
-
-    public ScopeTreeLookupParameter<IParameterConfiguration> ParameterVectorParameter {
-      get { return (ScopeTreeLookupParameter<IParameterConfiguration>)Parameters["ParameterConfiguration"]; }
-    }
-    public ScopeTreeLookupParameter<DoubleValue> QualityParameter {
-      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
-    }
-    public LookupParameter<IParameterConfiguration> BestSolutionParameter {
-      get { return (LookupParameter<IParameterConfiguration>)Parameters["BestSolution"]; }
-    }
-    public ValueLookupParameter<ResultCollection> ResultsParameter {
-      get { return (ValueLookupParameter<ResultCollection>)Parameters["Results"]; }
-    }
-    public LookupParameter<DoubleValue> BestKnownQualityParameter {
-      get { return (LookupParameter<DoubleValue>)Parameters["BestKnownQuality"]; }
-    }
-    public LookupParameter<IParameterConfiguration> BestKnownSolutionParameter {
-      get { return (LookupParameter<IParameterConfiguration>)Parameters["BestKnownSolution"]; }
-    }
-
-    public BestParameterConfigurationAnalyzer()
-      : base() {
-      Parameters.Add(new ScopeTreeLookupParameter<IParameterConfiguration>("ParameterConfiguration", "TODO The TSP solutions given in path representation from which the best solution should be analyzed."));
-      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "TODO The qualities of the TSP solutions which should be analyzed."));
-      Parameters.Add(new LookupParameter<IParameterConfiguration>("BestSolution", "TODO The best TSP solution."));
-      Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "TODO The result collection where the best TSP solution should be stored."));
-      Parameters.Add(new LookupParameter<DoubleValue>("BestKnownQuality", "TODO The quality of the best known solution of this TSP instance."));
-      Parameters.Add(new LookupParameter<IParameterConfiguration>("BestKnownSolution", "TODO The best known solution of this TSP instance."));
-    }
-
-    [StorableConstructor]
-    private BestParameterConfigurationAnalyzer(bool deserializing) : base(deserializing) { }
-    private BestParameterConfigurationAnalyzer(BestParameterConfigurationAnalyzer original, Cloner cloner) : base(original, cloner) { }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new BestParameterConfigurationAnalyzer(this, cloner);
-    }
-
-    public override IOperation Apply() {
-      ItemArray<DoubleValue> qualities = QualityParameter.ActualValue;
-      ResultCollection results = ResultsParameter.ActualValue;
-      DoubleValue bestKnownQuality = BestKnownQualityParameter.ActualValue;
-      ItemArray<IParameterConfiguration> parameterVectors = ParameterVectorParameter.ActualValue;
-
-      int i = qualities.Select((x, index) => new { index, x.Value }).OrderBy(x => x.Value).First().index;
-
-      if (bestKnownQuality == null || qualities[i].Value < bestKnownQuality.Value) {
-        BestKnownQualityParameter.ActualValue = new DoubleValue(qualities[i].Value);
-        BestKnownSolutionParameter.ActualValue = (IParameterConfiguration)parameterVectors[i].Clone();
-      }
-
-      // todo: more
-
-      return base.Apply();
-    }
-  }
-}
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/Crossovers/ParameterConfigurationCrossover.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/Crossovers/ParameterConfigurationCrossover.cs	(revision 4832)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/Crossovers/ParameterConfigurationCrossover.cs	(revision 4832)
@@ -0,0 +1,87 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Operators;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Core;
+using HeuristicLab.Parameters;
+using HeuristicLab.Encodings.RealVectorEncoding;
+using HeuristicLab.Encodings.BinaryVectorEncoding;
+using HeuristicLab.Encodings.IntegerVectorEncoding;
+using HeuristicLab.Collections;
+using HeuristicLab.Data;
+using HeuristicLab.Optimization;
+using HeuristicLab.Common;
+
+namespace HeuristicLab.Problems.MetaOptimization.Encodings.Crossovers {
+  /// <summary>
+  /// 
+  /// </summary>
+  [Item("ParameterVectorCrossover", "TODO")]
+  [StorableClass]
+  public class ParameterConfigurationCrossover : SingleSuccessorOperator, IParameterConfigurationOperator, ICrossover {
+    public override bool CanChangeName {
+      get { return false; }
+    }
+
+    public ILookupParameter<IRandom> RandomParameter {
+      get { return (LookupParameter<IRandom>)Parameters["Random"]; }
+    }
+    public ILookupParameter<ItemArray<IParameterConfiguration>> ParentsParameter {
+      get { return (ScopeTreeLookupParameter<IParameterConfiguration>)Parameters["Parents"]; }
+    }
+    public ILookupParameter<IParameterConfiguration> ChildParameter {
+      get { return (ILookupParameter<IParameterConfiguration>)Parameters["Child"]; }
+    }
+
+    private IIntegerVectorCrossover integerVectorCrossover;
+    public IIntegerVectorCrossover IntegerVectorCrossover {
+      get { return integerVectorCrossover; }
+      set { integerVectorCrossover = value; }
+    }
+    private IRealVectorCrossover realVectorCrossover;
+    public IRealVectorCrossover RealVectorCrossover {
+      get { return realVectorCrossover; }
+      set { realVectorCrossover = value; }
+    }
+
+    [StorableConstructor]
+    protected ParameterConfigurationCrossover(bool deserializing) : base(deserializing) { }
+    protected ParameterConfigurationCrossover(ParameterConfigurationCrossover original, Cloner cloner) : base(original, cloner) { }
+    public ParameterConfigurationCrossover()
+      : base() {
+      Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator which should be used for stochastic crossover operators."));
+      Parameters.Add(new ScopeTreeLookupParameter<IParameterConfiguration>("Parents", "The parent vectors which should be crossed."));
+      ParentsParameter.ActualName = "ParameterConfiguration";
+      Parameters.Add(new LookupParameter<IParameterConfiguration>("Child", "The child vector resulting from the crossover."));
+      ChildParameter.ActualName = "ParameterConfiguration";
+    }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new ParameterConfigurationCrossover(this, cloner);
+    }
+
+    public override IOperation Apply() {
+
+      IParameterConfiguration child = (IParameterConfiguration)ParentsParameter.ActualValue[0].Clone();
+      // todo
+      //for (int i = 0; i < child.Parameters.Count; i++) {
+      //  if (child.Parameters[i].Parameter.DataType == typeof(IntValue)) {
+      //    child.Parameters[i].Parameter.ActualValue = CrossInteger(ParentsParameter.ActualValue[0].Parameters[i], ParentsParameter.ActualValue[1].Parameters[i]);
+      //  }
+      //}
+
+      this.ChildParameter.ActualValue = child;
+      return base.Apply();
+    }
+
+    private IntValue CrossInteger(IParameterConfiguration parameter1, IParameterConfiguration parameter2) {
+      IntegerVector integerChild = HeuristicLab.Encodings.IntegerVectorEncoding.DiscreteCrossover.Apply(
+        RandomParameter.ActualValue,
+        new IntegerVector(new IntArray(new int[] { ((IntValue)parameter1.Value).Value })),
+        new IntegerVector(new IntArray(new int[] { ((IntValue)parameter2.Value).Value })));
+      return new IntValue(integerChild[0]);
+    }
+
+  }
+}
Index: anches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/Crossovers/ParameterVectorCrossover.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/Crossovers/ParameterVectorCrossover.cs	(revision 4831)
+++ 	(revision )
@@ -1,87 +1,0 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Operators;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Core;
-using HeuristicLab.Parameters;
-using HeuristicLab.Encodings.RealVectorEncoding;
-using HeuristicLab.Encodings.BinaryVectorEncoding;
-using HeuristicLab.Encodings.IntegerVectorEncoding;
-using HeuristicLab.Collections;
-using HeuristicLab.Data;
-using HeuristicLab.Optimization;
-using HeuristicLab.Common;
-
-namespace HeuristicLab.Problems.MetaOptimization.Encodings.Crossovers {
-  /// <summary>
-  /// 
-  /// </summary>
-  [Item("ParameterVectorCrossover", "TODO")]
-  [StorableClass]
-  public class ParameterVectorCrossover : SingleSuccessorOperator, IParameterConfigurationOperator, ICrossover {
-    public override bool CanChangeName {
-      get { return false; }
-    }
-
-    public ILookupParameter<IRandom> RandomParameter {
-      get { return (LookupParameter<IRandom>)Parameters["Random"]; }
-    }
-    public ILookupParameter<ItemArray<IParameterConfiguration>> ParentsParameter {
-      get { return (ScopeTreeLookupParameter<IParameterConfiguration>)Parameters["Parents"]; }
-    }
-    public ILookupParameter<IParameterConfiguration> ChildParameter {
-      get { return (ILookupParameter<IParameterConfiguration>)Parameters["Child"]; }
-    }
-
-    private IIntegerVectorCrossover integerVectorCrossover;
-    public IIntegerVectorCrossover IntegerVectorCrossover {
-      get { return integerVectorCrossover; }
-      set { integerVectorCrossover = value; }
-    }
-    private IRealVectorCrossover realVectorCrossover;
-    public IRealVectorCrossover RealVectorCrossover {
-      get { return realVectorCrossover; }
-      set { realVectorCrossover = value; }
-    }
-
-    [StorableConstructor]
-    protected ParameterVectorCrossover(bool deserializing) : base(deserializing) { }
-    protected ParameterVectorCrossover(ParameterVectorCrossover original, Cloner cloner) : base(original, cloner) { }
-    public ParameterVectorCrossover()
-      : base() {
-      Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator which should be used for stochastic crossover operators."));
-      Parameters.Add(new ScopeTreeLookupParameter<IParameterConfiguration>("Parents", "The parent vectors which should be crossed."));
-      ParentsParameter.ActualName = "ParameterConfiguration";
-      Parameters.Add(new LookupParameter<IParameterConfiguration>("Child", "The child vector resulting from the crossover."));
-      ChildParameter.ActualName = "ParameterConfiguration";
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new ParameterVectorCrossover(this, cloner);
-    }
-
-    public override IOperation Apply() {
-
-      IParameterConfiguration child = (IParameterConfiguration)ParentsParameter.ActualValue[0].Clone();
-      // todo
-      //for (int i = 0; i < child.Parameters.Count; i++) {
-      //  if (child.Parameters[i].Parameter.DataType == typeof(IntValue)) {
-      //    child.Parameters[i].Parameter.ActualValue = CrossInteger(ParentsParameter.ActualValue[0].Parameters[i], ParentsParameter.ActualValue[1].Parameters[i]);
-      //  }
-      //}
-
-      this.ChildParameter.ActualValue = child;
-      return base.Apply();
-    }
-
-    private IntValue CrossInteger(IParameterConfiguration parameter1, IParameterConfiguration parameter2) {
-      IntegerVector integerChild = HeuristicLab.Encodings.IntegerVectorEncoding.DiscreteCrossover.Apply(
-        RandomParameter.ActualValue,
-        new IntegerVector(new IntArray(new int[] { ((IntValue)parameter1.Parameter.ActualValue).Value })),
-        new IntegerVector(new IntArray(new int[] { ((IntValue)parameter2.Parameter.ActualValue).Value })));
-      return new IntValue(integerChild[0]);
-    }
-
-  }
-}
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/IntValueParameterConfiguration.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/IntValueParameterConfiguration.cs	(revision 4831)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/IntValueParameterConfiguration.cs	(revision 4832)
@@ -12,5 +12,5 @@
   public class IntValueParameterConfiguration : ValueTypeParameterConfiguration<IntValue> {
 
-    public IntValueParameterConfiguration(ParameterConfiguration parentConfiguration, string parameterName, IItem value) : base(parentConfiguration, parameterName, value) {
+    public IntValueParameterConfiguration(ParameterConfiguration parentConfiguration, string parameterName, IValueParameter valueParameter) : base(parentConfiguration, parameterName, valueParameter) {
     }
 
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/ParameterConfiguration.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/ParameterConfiguration.cs	(revision 4831)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/ParameterConfiguration.cs	(revision 4832)
@@ -46,8 +46,19 @@
     }
 
-    public virtual IParameter Parameter {
-      get {
-        return parentConfiguration.GetChildParameter(this.parameterName);
-      }
+    //public virtual IParameter Parameter {
+    //  get {
+    //    return parentConfiguration.GetChildParameter(this.parameterName);
+    //  }
+    //}
+
+
+    protected Type parameterType;
+    public Type ParameterType {
+      get { return this.parameterType; }
+    }
+
+    protected Type valueType;
+    public Type ValueType {
+      get { return this.valueType; }
     }
 
@@ -66,8 +77,15 @@
     }
 
-    public ParameterConfiguration(ParameterConfiguration parentConfiguration, string parameterName, IItem value) {
+    // store parameter reference only for name/description/image/...
+    private IValueParameter parameter;
+
+    public ParameterConfiguration(ParameterConfiguration parentConfiguration, string parameterName, IValueParameter valueParameter) {
       this.parentConfiguration = parentConfiguration;
       this.ParameterName = parameterName;
-      this.Value = value;
+      this.Value = valueParameter.Value;
+      this.parameterType = valueParameter.GetType();
+      this.valueType = valueParameter.DataType;
+
+      this.parameter = valueParameter;
     }
 
@@ -102,9 +120,9 @@
     #region INamedItem Properties
     public virtual string Name {
-      get { return Parameter.Name; }
+      get { return ParameterName; }
       set { throw new NotSupportedException(); }
     }
     public virtual string Description {
-      get { return Parameter.Description; }
+      get { return parameter.Description; }
       set { throw new NotSupportedException(); }
     }
@@ -116,14 +134,14 @@
     }
     public virtual string ItemDescription {
-      get { return Parameter.ItemDescription; }
+      get { return parameter.Description; }
     }
     public virtual System.Drawing.Image ItemImage {
-      get { return Parameter.ItemImage; }
+      get { return parameter.ItemImage; }
     }
     public virtual string ItemName {
-      get { return Parameter.ItemName; }
+      get { return parameter.ItemName; }
     }
     public virtual Version ItemVersion {
-      get { return Parameter.ItemVersion; }
+      get { return parameter.ItemVersion; }
     }
     #endregion
@@ -192,10 +210,10 @@
 
         if (typeof(IntValue).IsAssignableFrom(parameter.DataType)) {
-          return new IntValueParameterConfiguration(parentConfiguration, parameter.Name, valueParameter.Value);
+          return new IntValueParameterConfiguration(parentConfiguration, parameter.Name, valueParameter);
         } else if (typeof(IParameterizedItem).IsAssignableFrom(parameter.DataType)) {
-          return new ParameterConfiguration(parentConfiguration, parameter.Name, valueParameter.Value);
+          return new ParameterConfiguration(parentConfiguration, parameter.Name, valueParameter);
         } else {
           // todo
-          return new IntValueParameterConfiguration(parentConfiguration, parameter.Name, valueParameter.Value);
+          return new IntValueParameterConfiguration(parentConfiguration, parameter.Name, valueParameter);
         }
       }
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/RootParameterConfiguration.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/RootParameterConfiguration.cs	(revision 4831)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/RootParameterConfiguration.cs	(revision 4832)
@@ -34,7 +34,7 @@
     }
 
-    public override IParameter Parameter {
-      get { return null; }
-    }
+    //public override IParameter Parameter {
+    //  get { return null; }
+    //}
 
     #region INamedItem Properties
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/ValueTypeParameterConfiguration.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/ValueTypeParameterConfiguration.cs	(revision 4831)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/ValueTypeParameterConfiguration.cs	(revision 4832)
@@ -18,5 +18,5 @@
     }
 
-    public ValueTypeParameterConfiguration(ParameterConfiguration parentConfiguration, string parameterName, IItem value) : base(parentConfiguration, parameterName, value) {
+    public ValueTypeParameterConfiguration(ParameterConfiguration parentConfiguration, string parameterName, IValueParameter valueParameter) : base(parentConfiguration, parameterName, valueParameter) {
       this.ranges = new ItemList<IRange<T>>();
       this.ranges.ItemsAdded += new CollectionItemsChangedEventHandler<IndexedItem<IRange<T>>>(ranges_ItemsAdded);
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/HeuristicLab.Problems.MetaOptimization-3.3.csproj
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/HeuristicLab.Problems.MetaOptimization-3.3.csproj	(revision 4831)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/HeuristicLab.Problems.MetaOptimization-3.3.csproj	(revision 4832)
@@ -87,8 +87,8 @@
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="Analyzers\BestQualityAnalyzer.cs" />
+    <Compile Include="Analyzers\BestParameterConfigurationAnalyzer.cs" />
     <Compile Include="Interfaces\IParameterConfigurationCreator.cs" />
     <Compile Include="Creators\RandomParameterConfigurationCreator.cs" />
-    <Compile Include="Encodings\Crossovers\ParameterVectorCrossover.cs" />
+    <Compile Include="Encodings\Crossovers\ParameterConfigurationCrossover.cs" />
     <Compile Include="Encodings\IntValueParameterConfiguration.cs" />
     <Compile Include="Encodings\ValueTypeParameterConfiguration.cs">
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IParameterConfiguration.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IParameterConfiguration.cs	(revision 4831)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IParameterConfiguration.cs	(revision 4832)
@@ -9,5 +9,7 @@
     bool OptimizationEnabled { get; set; }
     string ParameterName { get; set; }
-    IParameter Parameter { get; }
+    //IParameter Parameter { get; }
+    Type ParameterType { get; }
+    Type ValueType { get; }
     IItem Value { get; set; }
     IItemList<IParameterConfiguration> ChildParameterConfigurations { get; }
