Index: branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/AlgorithmConverter.cs
===================================================================
--- branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/AlgorithmConverter.cs	(revision 17443)
+++ branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/AlgorithmConverter.cs	(revision 17444)
@@ -16,7 +16,9 @@
       base.Inject(item, data, root);
       IAlgorithm algorithm = item as IAlgorithm;
-      IJsonItem problemData = data.Children.Where(x => x.Name == algorithm.Problem.ItemName).First();
-      root.Inject(algorithm.Problem, problemData, root);
-
+      var collection = data.Children.Where(x => x.Name == algorithm.Problem.ItemName);
+      if(collection.Count() > 0) {
+        IJsonItem problemData = collection.First();
+        root.Inject(algorithm.Problem, problemData, root);
+      }
     }
     
@@ -27,7 +29,5 @@
         item.AddChildren(new ResultItem() {
           Name = res.Name,
-          Description = res.Description,
-          Value = true,
-          Range = new object[] { true, false }
+          Description = res.Description
         });
       }
Index: branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Interfaces/IJsonItem.cs
===================================================================
--- branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Interfaces/IJsonItem.cs	(revision 17443)
+++ branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Interfaces/IJsonItem.cs	(revision 17444)
@@ -33,4 +33,16 @@
 
     void AddChildren(IEnumerable<IJsonItem> childs);
+
+    /// <summary>
+    /// This method fixates the path. 
+    /// After calling, the path cannot be changed by changing the name or parent.
+    /// </summary>
+    void FixatePath();
+
+    /// <summary>
+    /// This method looses the path again after a call of FixatePath.
+    /// After calling, the path is calculated by the position in item tree again.
+    /// </summary>
+    void LoosenPath();
   }
 }
Index: branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Models/JsonItem.cs
===================================================================
--- branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Models/JsonItem.cs	(revision 17443)
+++ branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Models/JsonItem.cs	(revision 17444)
@@ -45,6 +45,10 @@
     public virtual string Description { get; set; }
 
+    private string fixedPath = "";
     public virtual string Path {
       get {
+        if (!string.IsNullOrWhiteSpace(fixedPath))
+          return fixedPath;
+
         IJsonItem tmp = Parent;
         StringBuilder builder = new StringBuilder(this.Name);
@@ -57,4 +61,10 @@
     }
 
+    public virtual object Value { get; set; }
+
+    public virtual IEnumerable<object> Range { get; set; }
+    
+    public virtual string ActualName { get; set; }
+
     [JsonIgnore]
     public virtual IList<IJsonItem> Children { get; protected set; }
@@ -62,10 +72,4 @@
     [JsonIgnore]
     public virtual IJsonItem Parent { get; set; }
-
-    public virtual object Value { get; set; }
-
-    public virtual IEnumerable<object> Range { get; set; }
-    
-    public virtual string ActualName { get; set; }
 
     #region Constructors
@@ -97,4 +101,5 @@
 
     public void AddChildren(IEnumerable<IJsonItem> childs) {
+      if (childs == null) return;
       if (Children == null)
         Children = new List<IJsonItem>();
@@ -106,8 +111,11 @@
 
     public virtual IJsonItemValidator GetValidator() => new JsonItemValidator(this);
+
+    public void FixatePath() => fixedPath = Path;
+    public void LoosenPath() => fixedPath = "";
     #endregion
 
     #region Helper
-    protected bool IsInRange() {
+    protected virtual bool IsInRange() {
       bool b1 = true, b2 = true;
       if (Value is IEnumerable && !(Value is string)) {
Index: branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Models/JsonItems.cs
===================================================================
--- branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Models/JsonItems.cs	(revision 17443)
+++ branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Models/JsonItems.cs	(revision 17444)
@@ -9,10 +9,30 @@
   public class IntArrayJsonItem: JsonItem<int[], int> { }
   public class IntRangeJsonItem : JsonItem<int[], int> { }
-  public class IntMatrixJsonItem : JsonItem<int[][], int> { }
+  public class IntMatrixJsonItem : JsonItem<int[][], int> {
+    protected override bool IsInRange() {
+      for (int c = 0; c < Value.Length; ++c) {
+        for (int r = 0; r < Value[c].Length; ++r) {
+          if (Value[c][r] < Range.First() && Range.Last() < Value[c][r])
+            return false;
+        }
+      }
+      return true;
+    }
+  }
 
   public class DoubleJsonItem: JsonItem<double> {}
   public class DoubleArrayJsonItem: JsonItem<double[], double> { }
   public class DoubleRangeJsonItem : JsonItem<double[], double> { }
-  public class DoubleMatrixJsonItem : JsonItem<double[][], double> { }
+  public class DoubleMatrixJsonItem : JsonItem<double[][], double> {
+    protected override bool IsInRange() {
+      for(int c = 0; c < Value.Length; ++c) {
+        for(int r = 0; r < Value[c].Length; ++r) {
+          if (Value[c][r] < Range.First() && Range.Last() < Value[c][r])
+            return false;
+        }
+      }
+      return true;
+    }
+  }
 
   public class BoolJsonItem: JsonItem<bool> { }
