Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/AlgorithmConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/AlgorithmConverter.cs	(revision 17406)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/AlgorithmConverter.cs	(revision 17407)
@@ -13,6 +13,6 @@
     public override Type ConvertableType => typeof(IAlgorithm);
 
-    public override void InjectData(IItem item, IJsonItem data, IJsonItemConverter root) {
-      base.InjectData(item, data, root);
+    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) {
+      base.Inject(item, data, root);
       IAlgorithm algorithm = item as IAlgorithm;
       IJsonItem problemData = data.Children.Where(x => x.Name == algorithm.Problem.Name).First();
@@ -20,16 +20,17 @@
 
     }
-
-    public override void Populate(IItem value, IJsonItem item, IJsonItemConverter root) {
-      base.Populate(value, item, root);
+    
+    public override IJsonItem Extract(IItem value, IJsonItemConverter root) {
+      IJsonItem item = base.Extract(value, root);
       IAlgorithm algorithm = value as IAlgorithm;
-      foreach(var res in algorithm.Results) {
-        item.AddChilds(new ResultItem() { 
-          Name = res.Name, 
-          Value = true, 
-          Range = new object[] { true, false } 
+      foreach (var res in algorithm.Results) {
+        item.AddChilds(new ResultItem() {
+          Name = res.Name,
+          Value = true,
+          Range = new object[] { true, false }
         });
       }
       item.AddChilds(root.Extract(algorithm.Problem, root));
+      return item;
     }
   }
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/BaseConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/BaseConverter.cs	(revision 17406)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/BaseConverter.cs	(revision 17407)
@@ -14,17 +14,6 @@
     public abstract Type ConvertableType { get; }
 
-    public void Inject(IItem item, IJsonItem data, IJsonItemConverter root) {
-
-      InjectData(item, data, root);
-    }
-
-    public IJsonItem Extract(IItem value, IJsonItemConverter root) {
-      IJsonItem data = new JsonItem() { Name = value.ItemName };
-      Populate(value, data, root);
-      return data;
-    }
-    
-    public abstract void InjectData(IItem item, IJsonItem data, IJsonItemConverter root);
-    public abstract void Populate(IItem value, IJsonItem item, IJsonItemConverter root); // TODO: populate?
+    public abstract void Inject(IItem item, IJsonItem data, IJsonItemConverter root);
+    public abstract IJsonItem Extract(IItem value, IJsonItemConverter root);
 
     #region Helper
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ConstrainedValueParameterConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ConstrainedValueParameterConverter.cs	(revision 17406)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ConstrainedValueParameterConverter.cs	(revision 17407)
@@ -8,10 +8,11 @@
 
 namespace HeuristicLab.JsonInterface {
-  public class ConstrainedValueParameterConverter : ParameterBaseConverter {
+  public class ConstrainedValueParameterConverter : BaseConverter {
     public override int Priority => 3;
     public override Type ConvertableType => typeof(IConstrainedValueParameter<>);
 
-    public override void InjectData(IParameter parameter, IJsonItem data, IJsonItemConverter root) {
-      foreach(var x in GetValidValues(parameter))
+    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) {
+      IParameter parameter = item as IParameter;
+      foreach (var x in GetValidValues(parameter))
         if(x.ToString() == CastValue<string>(data.Value))
           parameter.ActualValue = x;
@@ -24,11 +25,17 @@
       }
     }
+    
+    public override IJsonItem Extract(IItem value, IJsonItemConverter root) {
+      IParameter parameter = value as IParameter;
 
-    public override void Populate(IParameter value, IJsonItem item, IJsonItemConverter root) {
-      item.AddChilds(GetParameterizedChilds(value));
-      item.Name = value.Name;
-      item.Value = value.ActualValue?.ToString();
-      item.Range = GetValidValues(value).Select(x => x.ToString());
-    }      
+      IJsonItem item = new JsonItem() {
+        Name = parameter.Name,
+        Value = parameter.ActualValue?.ToString(),
+        Range = GetValidValues(parameter).Select(x => x.ToString())
+      };
+      item.AddChilds(GetParameterizedChilds(parameter));
+
+      return item;
+    }
 
     #region Helper
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/EnumTypeConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/EnumTypeConverter.cs	(revision 17406)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/EnumTypeConverter.cs	(revision 17407)
@@ -12,14 +12,17 @@
     public override Type ConvertableType => typeof(EnumValue<>);
 
-    public override void InjectData(IItem item, IJsonItem data, IJsonItemConverter root) =>
+    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) =>
       ((dynamic)item).Value = Enum.Parse(
         item.GetType().GenericTypeArguments.First(), 
         CastValue<string>(data.Value));
-
-    public override void Populate(IItem value, IJsonItem item, IJsonItemConverter root) {
+    
+    public override IJsonItem Extract(IItem value, IJsonItemConverter root) {
       object val = ((dynamic)value).Value;
       Type enumType = val.GetType();
-      item.Value = Enum.GetName(enumType, val);
-      item.Range = Enum.GetNames(enumType);
+      return new JsonItem() { 
+        Name = value.ItemName,
+        Value = Enum.GetName(enumType, val),
+        Range = Enum.GetNames(enumType)
+    };
     }
   }
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/LookupParameterConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/LookupParameterConverter.cs	(revision 17406)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/LookupParameterConverter.cs	(revision 17407)
@@ -7,15 +7,20 @@
 
 namespace HeuristicLab.JsonInterface {
-  public class LookupParameterConverter : ParameterBaseConverter {
+  public class LookupParameterConverter : BaseConverter {
     public override int Priority => 3;
     public override Type ConvertableType => typeof(ILookupParameter);
+    
+    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) =>
+      ((ILookupParameter)item).ActualName = data.ActualName as string;
 
-    public override void Populate(IParameter value, IJsonItem item, IJsonItemConverter root) {
-      item.Name = value.Name;
-      item.ActualName = ((ILookupParameter)value).ActualName;
-    } 
+    public override IJsonItem Extract(IItem value, IJsonItemConverter root) {
+      IParameter parameter = value as IParameter;
 
-    public override void InjectData(IParameter parameter, IJsonItem data, IJsonItemConverter root) =>
-      ((ILookupParameter)parameter).ActualName = data.ActualName as string;
+      IJsonItem item = new JsonItem() {
+        Name = parameter.Name,
+        ActualName = ((ILookupParameter)parameter).ActualName
+      };
+      return item;
+    }
   }
 }
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/MultiCheckedOperatorConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/MultiCheckedOperatorConverter.cs	(revision 17406)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/MultiCheckedOperatorConverter.cs	(revision 17407)
@@ -11,8 +11,15 @@
     public override int Priority => 3;
     public override Type ConvertableType => typeof(ICheckedMultiOperator<>);
+    
+    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) {
+      base.Inject(item, data, root);
 
-    public override void Populate(IItem value, IJsonItem item, IJsonItemConverter root) {
-      base.Populate(value, item, root);
+      dynamic val = item as dynamic;
+      foreach (var op in val.Operators)
+        val.Operators.SetItemCheckedState(op, GetOperatorState(op.Name, data));
+    }
 
+    public override IJsonItem Extract(IItem value, IJsonItemConverter root) {
+      IJsonItem item = base.Extract(value, root);
       dynamic val = value as dynamic;
       foreach (var op in val.Operators) {
@@ -23,14 +30,9 @@
         });
       }
+      return item;
     }
 
-    public override void InjectData(IItem item, IJsonItem data, IJsonItemConverter root) {
-      base.InjectData(item, data, root);
 
-      dynamic val = item as dynamic;
-      foreach (var op in val.Operators)
-        val.Operators.SetItemCheckedState(op, GetOperatorState(op.Name, data));
-    }
-
+    #region Helper
     private bool GetOperatorState(string name, IJsonItem data) {
       foreach(var op in data.Children) {
@@ -39,4 +41,5 @@
       return false;
     }
+    #endregion
   }
 }
Index: anches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ParameterBaseConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ParameterBaseConverter.cs	(revision 17406)
+++ 	(revision )
@@ -1,20 +1,0 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using HeuristicLab.Core;
-
-namespace HeuristicLab.JsonInterface {
-  public abstract class ParameterBaseConverter : BaseConverter {
-    public override void Populate(IItem value, IJsonItem item, IJsonItemConverter root) => 
-      Populate(value as IParameter, item, root);
-
-    public abstract void Populate(IParameter value, IJsonItem item, IJsonItemConverter root);
-
-    public override void InjectData(IItem item, IJsonItem data, IJsonItemConverter root) => 
-      InjectData(item as IParameter, data, root);
-
-    public abstract void InjectData(IParameter parameter, IJsonItem data, IJsonItemConverter root);
-  }
-}
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ParameterizedItemConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ParameterizedItemConverter.cs	(revision 17406)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ParameterizedItemConverter.cs	(revision 17407)
@@ -11,5 +11,5 @@
     public override Type ConvertableType => typeof(IParameterizedItem);
 
-    public override void InjectData(IItem item, IJsonItem data, IJsonItemConverter root) {
+    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) {
       IParameterizedItem pItem = item as IParameterizedItem;
 
@@ -21,15 +21,17 @@
     }
 
-    public override void Populate(IItem value, IJsonItem item, IJsonItemConverter root) {
+    public override IJsonItem Extract(IItem value, IJsonItemConverter root) {
+      IJsonItem item = new JsonItem() { Name = value.ItemName };
+
       var parameterizedItem = value as IParameterizedItem;
-
       foreach (var param in parameterizedItem.Parameters) {
         if (!param.Hidden) {
           IJsonItem tmp = root.Extract(param, root);
-          if(!(tmp is UnsupportedJsonItem))
+          if (!(tmp is UnsupportedJsonItem))
             item.AddChilds(tmp);
         }
-          
       }
+
+      return item;
     }
   }
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/RegressionProblemDataConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/RegressionProblemDataConverter.cs	(revision 17406)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/RegressionProblemDataConverter.cs	(revision 17407)
@@ -14,5 +14,12 @@
     public override Type ConvertableType => HEAL.Attic.Mapper.StaticCache.GetType(new Guid("EE612297-B1AF-42D2-BF21-AF9A2D42791C"));
 
-    public override void Populate(IItem value, IJsonItem item, IJsonItemConverter root) {      
+    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) {
+      // TODO: inject data
+      throw new NotImplementedException();
+    }
+
+    public override IJsonItem Extract(IItem value, IJsonItemConverter root) {
+      IJsonItem item = new JsonItem() { Name = value.ItemName };
+
       dynamic val = (dynamic)value;
       object dataset = (object)val.Dataset;
@@ -38,9 +45,5 @@
         Range = variables.Select(x => x.Value)
       });
-    }
-
-    public override void InjectData(IItem item, IJsonItem data, IJsonItemConverter root) {
-      // TODO: inject data
-      throw new NotImplementedException();
+      return item;
     }
   }
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/StringValueConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/StringValueConverter.cs	(revision 17406)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/StringValueConverter.cs	(revision 17407)
@@ -12,9 +12,12 @@
     public override Type ConvertableType => typeof(StringValue);
 
-    public override void InjectData(IItem item, IJsonItem data, IJsonItemConverter root) =>
+    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) =>
       ((StringValue)item).Value = CastValue<string>(data.Value);
 
-    public override void Populate(IItem value, IJsonItem item, IJsonItemConverter root) =>
-      item.Value = ((StringValue)value).Value;
+    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
+      new JsonItem() {
+        Name = value.ItemName,
+        Value = ((StringValue)value).Value
+      };
   }
 }
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueLookupParameterConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueLookupParameterConverter.cs	(revision 17406)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueLookupParameterConverter.cs	(revision 17407)
@@ -7,17 +7,26 @@
 
 namespace HeuristicLab.JsonInterface {
-  public class ValueLookupParameterConverter : ParameterBaseConverter {
+  public class ValueLookupParameterConverter : BaseConverter {
     public override int Priority => 4;
     public override Type ConvertableType => typeof(IValueLookupParameter);
 
-    public override void Populate(IParameter value, IJsonItem item, IJsonItemConverter root) {
+    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) {
+      IValueLookupParameter param = item as IValueLookupParameter;
+      param.ActualName = CastValue<string>(data.ActualName);
+      if (param.Value != null)
+        root.Inject(param.Value, data, root);
+    }
+
+    public override IJsonItem Extract(IItem value, IJsonItemConverter root) {
       IValueLookupParameter param = value as IValueLookupParameter;
-      
-      item.Name = value.Name;
-      item.ActualName = param.ActualName;
+
+      IJsonItem item = new JsonItem() {
+        Name = param.Name,
+        ActualName = param.ActualName
+      };
 
       object actualValue = null;
       IEnumerable<object> actualRange = null;
-      if(param.Value != null) {
+      if (param.Value != null) {
         IJsonItem tmp = root.Extract(param.Value, root);
         tmp.Parent = item;
@@ -29,11 +38,5 @@
       item.Value = actualValue;
       item.Range = actualRange;
-    }
-
-    public override void InjectData(IParameter parameter, IJsonItem data, IJsonItemConverter root) {
-      IValueLookupParameter param = parameter as IValueLookupParameter;
-      param.ActualName = CastValue<string>(data.ActualName);
-      if (param.Value != null)
-        root.Inject(param.Value, data, root);
+      return item;
     }
   }
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueParameterConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueParameterConverter.cs	(revision 17406)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueParameterConverter.cs	(revision 17407)
@@ -7,9 +7,11 @@
 
 namespace HeuristicLab.JsonInterface {
-  public class ValueParameterConverter : ParameterBaseConverter {
+  public class ValueParameterConverter : BaseConverter {
     public override int Priority => 2;
     public override Type ConvertableType => typeof(IValueParameter);
 
-    public override void InjectData(IParameter parameter, IJsonItem data, IJsonItemConverter root) {
+    public override void Inject(IItem value, IJsonItem data, IJsonItemConverter root) {
+      IParameter parameter = value as IParameter;
+
       if (parameter.ActualValue == null && data.Value != null)
         parameter.ActualValue = Instantiate(parameter.DataType);
@@ -17,11 +19,16 @@
     }
 
-    public override void Populate(IParameter value, IJsonItem item, IJsonItemConverter root) {
-      item.Name = value.Name;
-      if (value.ActualValue != null) {
-        IJsonItem tmp = root.Extract(value.ActualValue, root);
-        if(!(tmp is UnsupportedJsonItem)) {
+    public override IJsonItem Extract(IItem value, IJsonItemConverter root) {
+      IParameter parameter = value as IParameter;
+
+      IJsonItem item = new JsonItem() {
+        Name = parameter.Name
+      };
+
+      if (parameter.ActualValue != null) {
+        IJsonItem tmp = root.Extract(parameter.ActualValue, root);
+        if (!(tmp is UnsupportedJsonItem)) {
           if (tmp.Name == "[OverridableParamName]") {
-            tmp.Name = value.Name;
+            tmp.Name = parameter.Name;
             JsonItem.Merge(item as JsonItem, tmp as JsonItem);
           } else
@@ -29,4 +36,5 @@
         }
       }
+      return item;
     }
   }
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueRangeConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueRangeConverter.cs	(revision 17406)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueRangeConverter.cs	(revision 17407)
@@ -27,13 +27,5 @@
     private const BindingFlags Flags = BindingFlags.NonPublic | BindingFlags.Instance;
 
-    public override void Populate(IItem value, IJsonItem item, IJsonItemConverter root) {
-      var field = value.GetType().GetField("values", Flags);
-      Tuple<T,T> tuple = (Tuple<T,T>)field.GetValue(value);
-      item.Name = "[OverridableParamName]";
-      item.Value = new object[] { tuple.Item1.Value, tuple.Item2.Value };
-      item.Range = new object[] { GetMinValue(tuple.Item1.Value.GetType()), GetMaxValue(tuple.Item2.Value.GetType()) };
-    }
-
-    public override void InjectData(IItem item, IJsonItem data, IJsonItemConverter root) {
+    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) {
       object[] arr = (object[])data.Value;
       Tuple<T,T> tuple = new Tuple<T,T>(Instantiate<T>(arr[0]), Instantiate<T>(arr[1]));
@@ -41,4 +33,15 @@
       field.SetValue(tuple, item);
     }
+
+    public override IJsonItem Extract(IItem value, IJsonItemConverter root) {
+      var field = value.GetType().GetField("values", Flags);
+      Tuple<T, T> tuple = (Tuple<T, T>)field.GetValue(value);
+      return new JsonItem() {
+        Name = "[OverridableParamName]",
+        Value = new object[] { tuple.Item1.Value, tuple.Item2.Value },
+        Range = new object[] { GetMinValue(typeof(TType)), GetMaxValue(typeof(TType)) }
+      };
+    }
+      
   }
 }
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueTypeArrayConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueTypeArrayConverter.cs	(revision 17406)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueTypeArrayConverter.cs	(revision 17407)
@@ -34,11 +34,12 @@
     where T : struct 
   {
-    public override void InjectData(IItem item, IJsonItem data, IJsonItemConverter root) => 
+    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) => 
       CopyArrayData(((ArrayType)item), CastValue<T[]>(data.Value));
 
-    public override void Populate(IItem value, IJsonItem item, IJsonItemConverter root) {
-      item.Name = "[OverridableParamName]";
-      item.Value = ((ArrayType)value).CloneAsArray();
-    }
+    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
+      new JsonItem() {
+        Name = "[OverridableParamName]",
+        Value = ((ArrayType)value).CloneAsArray()
+      };
 
     #region Helper
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueTypeMatrixConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueTypeMatrixConverter.cs	(revision 17406)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueTypeMatrixConverter.cs	(revision 17407)
@@ -33,11 +33,13 @@
     where T : struct 
   {
-    public override void InjectData(IItem item, IJsonItem data, IJsonItemConverter root) => 
+    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) => 
       CopyMatrixData(item as MatrixType, data.Value);
 
-    public override void Populate(IItem value, IJsonItem item, IJsonItemConverter root) {
-      item.Name = "[OverridableParamName]";
-      item.Value = ((MatrixType)value).CloneAsMatrix();
-    }
+    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
+      new JsonItem() {
+        Name = "[OverridableParamName]",
+        Value = ((MatrixType)value).CloneAsMatrix()
+
+      };
 
     #region Helper
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueTypeValueConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueTypeValueConverter.cs	(revision 17406)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueTypeValueConverter.cs	(revision 17407)
@@ -38,12 +38,13 @@
     where T : struct {
 
-    public override void InjectData(IItem item, IJsonItem data, IJsonItemConverter root) =>
+    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) =>
       ((ValueType)item).Value = CastValue<T>(data.Value);
 
-    public override void Populate(IItem value, IJsonItem item, IJsonItemConverter root) {
-      item.Name = "[OverridableParamName]";
-      item.Value = ((ValueType)value).Value;
-      item.Range = new object[] { GetMinValue(typeof(T)), GetMaxValue(typeof(T)) };
-    }
+    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
+      new JsonItem() {
+        Name = "[OverridableParamName]",
+        Value = ((ValueType)value).Value,
+        Range = new object[] { GetMinValue(typeof(T)), GetMaxValue(typeof(T)) }
+      };
   }
 }
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/HeuristicLab.JsonInterface.csproj
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/HeuristicLab.JsonInterface.csproj	(revision 17406)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/HeuristicLab.JsonInterface.csproj	(revision 17407)
@@ -74,5 +74,4 @@
     <Compile Include="JsonTemplateInstantiator.cs" />
     <Compile Include="Converters\ConstrainedValueParameterConverter.cs" />
-    <Compile Include="Converters\ParameterBaseConverter.cs" />
     <Compile Include="Converters\ParameterizedItemConverter.cs" />
     <Compile Include="Converters\ValueParameterConverter.cs" />
