Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.App/HeuristicLab.JsonInterface.App.csproj
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.App/HeuristicLab.JsonInterface.App.csproj	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.App/HeuristicLab.JsonInterface.App.csproj	(revision 17464)
@@ -81,4 +81,8 @@
       <Name>HeuristicLab.Core-3.3</Name>
     </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.4\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.csproj">
+      <Project>{06D4A186-9319-48A0-BADE-A2058D462EEA}</Project>
+      <Name>HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4</Name>
+    </ProjectReference>
     <ProjectReference Include="..\HeuristicLab.JsonInterface\HeuristicLab.JsonInterface.csproj">
       <Project>{0e3aab5e-f152-44e0-a054-4d9a83ecee08}</Project>
@@ -96,4 +100,16 @@
       <Project>{94186a6a-5176-4402-ae83-886557b53cca}</Project>
       <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Problems.DataAnalysis.Symbolic.Regression\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4.csproj">
+      <Project>{5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}</Project>
+      <Name>HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Problems.DataAnalysis.Symbolic\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.csproj">
+      <Project>{3d28463f-ec96-4d82-afee-38be91a0ca00}</Project>
+      <Name>HeuristicLab.Problems.DataAnalysis.Symbolic-3.4</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Problems.DataAnalysis\3.4\HeuristicLab.Problems.DataAnalysis-3.4.csproj">
+      <Project>{DF87C13E-A889-46FF-8153-66DCAA8C5674}</Project>
+      <Name>HeuristicLab.Problems.DataAnalysis-3.4</Name>
     </ProjectReference>
     <ProjectReference Include="..\HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj">
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.App/Runner.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.App/Runner.cs	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.App/Runner.cs	(revision 17464)
@@ -8,4 +8,6 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.ParallelEngine;
+using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Regression;
 using HeuristicLab.SequentialEngine;
 using Newtonsoft.Json.Linq;
@@ -39,6 +41,12 @@
         obj.Add("Run", JToken.FromObject(run.ToString()));
         foreach (var res in run.Results) {
-          if (allowedResultNames.Contains(res.Key))
-            obj.Add(res.Key, JToken.FromObject(res.Value.ToString()));
+          if (allowedResultNames.Contains(res.Key)) {
+            if (res.Value is ISymbolicRegressionSolution solution) {
+              var formatter = new SymbolicDataAnalysisExpressionMATLABFormatter();
+              var x = formatter.Format(solution.Model.SymbolicExpressionTree);
+              obj.Add(res.Key, JToken.FromObject(x));
+            } else
+              obj.Add(res.Key, JToken.FromObject(res.Value.ToString()));
+          }
         }
       }
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/HeuristicLab.JsonInterface.OptimizerIntegration.csproj
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/HeuristicLab.JsonInterface.OptimizerIntegration.csproj	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/HeuristicLab.JsonInterface.OptimizerIntegration.csproj	(revision 17464)
@@ -66,8 +66,12 @@
       <HintPath>..\bin\HeuristicLab.Optimization.Views-3.3.dll</HintPath>
     </Reference>
+    <Reference Include="PresentationCore" />
+    <Reference Include="PresentationFramework" />
     <Reference Include="System" />
     <Reference Include="System.Core" />
     <Reference Include="System.Drawing" />
+    <Reference Include="System.Messaging" />
     <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xaml" />
     <Reference Include="System.Xml.Linq" />
     <Reference Include="System.Data.DataSetExtensions" />
@@ -76,4 +80,7 @@
     <Reference Include="System.Net.Http" />
     <Reference Include="System.Xml" />
+    <Reference Include="UIAutomationProvider" />
+    <Reference Include="WindowsBase" />
+    <Reference Include="WindowsFormsIntegration" />
   </ItemGroup>
   <ItemGroup>
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Shared/JsonItemBaseControl.Designer.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Shared/JsonItemBaseControl.Designer.cs	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Shared/JsonItemBaseControl.Designer.cs	(revision 17464)
@@ -25,35 +25,62 @@
     private void InitializeComponent() {
       this.components = new System.ComponentModel.Container();
+      this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
+      this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
+      this.panel4 = new System.Windows.Forms.Panel();
+      this.textBoxActualName = new System.Windows.Forms.TextBox();
+      this.labelActualName = new System.Windows.Forms.Label();
+      this.panel2 = new System.Windows.Forms.Panel();
+      this.labelDescription = new System.Windows.Forms.Label();
+      this.textBoxDescription = new System.Windows.Forms.TextBox();
+      this.panel1 = new System.Windows.Forms.Panel();
+      this.textBoxName = new System.Windows.Forms.TextBox();
+      this.label1 = new System.Windows.Forms.Label();
+      this.panel3 = new System.Windows.Forms.Panel();
       this.labelEnable = new System.Windows.Forms.Label();
       this.checkBoxActive = new System.Windows.Forms.CheckBox();
-      this.textBoxActualName = new System.Windows.Forms.TextBox();
-      this.labelActualName = new System.Windows.Forms.Label();
-      this.textBoxName = new System.Windows.Forms.TextBox();
-      this.label1 = new System.Windows.Forms.Label();
-      this.labelDescription = new System.Windows.Forms.Label();
-      this.textBoxDescription = new System.Windows.Forms.TextBox();
-      this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+      this.tableLayoutPanel1.SuspendLayout();
+      this.panel4.SuspendLayout();
+      this.panel2.SuspendLayout();
+      this.panel1.SuspendLayout();
+      this.panel3.SuspendLayout();
       this.SuspendLayout();
       // 
-      // labelEnable
-      // 
-      this.labelEnable.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.labelEnable.AutoSize = true;
-      this.labelEnable.Location = new System.Drawing.Point(6, 3);
-      this.labelEnable.Name = "labelEnable";
-      this.labelEnable.Size = new System.Drawing.Size(40, 13);
-      this.labelEnable.TabIndex = 3;
-      this.labelEnable.Text = "Enable";
-      // 
-      // checkBoxActive
-      // 
-      this.checkBoxActive.AutoSize = true;
-      this.checkBoxActive.Location = new System.Drawing.Point(92, 3);
-      this.checkBoxActive.Name = "checkBoxActive";
-      this.checkBoxActive.Size = new System.Drawing.Size(15, 14);
-      this.checkBoxActive.TabIndex = 2;
-      this.checkBoxActive.UseVisualStyleBackColor = true;
+      // errorProvider
+      // 
+      this.errorProvider.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink;
+      this.errorProvider.ContainerControl = this;
+      // 
+      // tableLayoutPanel1
+      // 
+      this.tableLayoutPanel1.ColumnCount = 1;
+      this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
+      this.tableLayoutPanel1.Controls.Add(this.panel4, 0, 3);
+      this.tableLayoutPanel1.Controls.Add(this.panel2, 0, 2);
+      this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 1);
+      this.tableLayoutPanel1.Controls.Add(this.panel3, 0, 0);
+      this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3);
+      this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(0);
+      this.tableLayoutPanel1.Name = "tableLayoutPanel1";
+      this.tableLayoutPanel1.RowCount = 5;
+      this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F));
+      this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F));
+      this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F));
+      this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F));
+      this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
+      this.tableLayoutPanel1.Size = new System.Drawing.Size(494, 388);
+      this.tableLayoutPanel1.TabIndex = 16;
+      // 
+      // panel4
+      // 
+      this.panel4.Controls.Add(this.textBoxActualName);
+      this.panel4.Controls.Add(this.labelActualName);
+      this.panel4.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.panel4.Location = new System.Drawing.Point(0, 75);
+      this.panel4.Margin = new System.Windows.Forms.Padding(0);
+      this.panel4.Name = "panel4";
+      this.panel4.Size = new System.Drawing.Size(494, 25);
+      this.panel4.TabIndex = 17;
       // 
       // textBoxActualName
@@ -61,7 +88,7 @@
       this.textBoxActualName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
             | System.Windows.Forms.AnchorStyles.Right)));
-      this.textBoxActualName.Location = new System.Drawing.Point(92, 75);
+      this.textBoxActualName.Location = new System.Drawing.Point(92, 3);
       this.textBoxActualName.Name = "textBoxActualName";
-      this.textBoxActualName.Size = new System.Drawing.Size(402, 20);
+      this.textBoxActualName.Size = new System.Drawing.Size(396, 20);
       this.textBoxActualName.TabIndex = 12;
       // 
@@ -69,5 +96,5 @@
       // 
       this.labelActualName.AutoSize = true;
-      this.labelActualName.Location = new System.Drawing.Point(6, 78);
+      this.labelActualName.Location = new System.Drawing.Point(6, 6);
       this.labelActualName.Name = "labelActualName";
       this.labelActualName.Size = new System.Drawing.Size(65, 13);
@@ -76,4 +103,44 @@
       this.labelActualName.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
       // 
+      // panel2
+      // 
+      this.panel2.Controls.Add(this.labelDescription);
+      this.panel2.Controls.Add(this.textBoxDescription);
+      this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.panel2.Location = new System.Drawing.Point(0, 50);
+      this.panel2.Margin = new System.Windows.Forms.Padding(0);
+      this.panel2.Name = "panel2";
+      this.panel2.Size = new System.Drawing.Size(494, 25);
+      this.panel2.TabIndex = 17;
+      // 
+      // labelDescription
+      // 
+      this.labelDescription.AutoSize = true;
+      this.labelDescription.Location = new System.Drawing.Point(6, 6);
+      this.labelDescription.Name = "labelDescription";
+      this.labelDescription.Size = new System.Drawing.Size(60, 13);
+      this.labelDescription.TabIndex = 13;
+      this.labelDescription.Text = "Description";
+      // 
+      // textBoxDescription
+      // 
+      this.textBoxDescription.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.textBoxDescription.Location = new System.Drawing.Point(92, 3);
+      this.textBoxDescription.Name = "textBoxDescription";
+      this.textBoxDescription.Size = new System.Drawing.Size(396, 20);
+      this.textBoxDescription.TabIndex = 14;
+      // 
+      // panel1
+      // 
+      this.panel1.Controls.Add(this.textBoxName);
+      this.panel1.Controls.Add(this.label1);
+      this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.panel1.Location = new System.Drawing.Point(0, 25);
+      this.panel1.Margin = new System.Windows.Forms.Padding(0);
+      this.panel1.Name = "panel1";
+      this.panel1.Size = new System.Drawing.Size(494, 25);
+      this.panel1.TabIndex = 17;
+      // 
       // textBoxName
       // 
@@ -81,7 +148,7 @@
             | System.Windows.Forms.AnchorStyles.Right)));
       this.errorProvider.SetIconAlignment(this.textBoxName, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
-      this.textBoxName.Location = new System.Drawing.Point(92, 23);
+      this.textBoxName.Location = new System.Drawing.Point(92, 3);
       this.textBoxName.Name = "textBoxName";
-      this.textBoxName.Size = new System.Drawing.Size(402, 20);
+      this.textBoxName.Size = new System.Drawing.Size(396, 20);
       this.textBoxName.TabIndex = 10;
       this.textBoxName.Validating += new System.ComponentModel.CancelEventHandler(this.textBoxName_Validating);
@@ -90,5 +157,5 @@
       // 
       this.label1.AutoSize = true;
-      this.label1.Location = new System.Drawing.Point(6, 26);
+      this.label1.Location = new System.Drawing.Point(6, 6);
       this.label1.Name = "label1";
       this.label1.Size = new System.Drawing.Size(35, 13);
@@ -97,26 +164,34 @@
       this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
       // 
-      // labelDescription
-      // 
-      this.labelDescription.AutoSize = true;
-      this.labelDescription.Location = new System.Drawing.Point(6, 52);
-      this.labelDescription.Name = "labelDescription";
-      this.labelDescription.Size = new System.Drawing.Size(60, 13);
-      this.labelDescription.TabIndex = 13;
-      this.labelDescription.Text = "Description";
-      // 
-      // textBoxDescription
-      // 
-      this.textBoxDescription.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.textBoxDescription.Location = new System.Drawing.Point(92, 49);
-      this.textBoxDescription.Name = "textBoxDescription";
-      this.textBoxDescription.Size = new System.Drawing.Size(402, 20);
-      this.textBoxDescription.TabIndex = 14;
-      // 
-      // errorProvider
-      // 
-      this.errorProvider.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink;
-      this.errorProvider.ContainerControl = this;
+      // panel3
+      // 
+      this.panel3.Controls.Add(this.labelEnable);
+      this.panel3.Controls.Add(this.checkBoxActive);
+      this.panel3.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.panel3.Location = new System.Drawing.Point(0, 0);
+      this.panel3.Margin = new System.Windows.Forms.Padding(0);
+      this.panel3.Name = "panel3";
+      this.panel3.Size = new System.Drawing.Size(494, 25);
+      this.panel3.TabIndex = 17;
+      // 
+      // labelEnable
+      // 
+      this.labelEnable.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.labelEnable.AutoSize = true;
+      this.labelEnable.Location = new System.Drawing.Point(6, 7);
+      this.labelEnable.Name = "labelEnable";
+      this.labelEnable.Size = new System.Drawing.Size(40, 13);
+      this.labelEnable.TabIndex = 3;
+      this.labelEnable.Text = "Enable";
+      // 
+      // checkBoxActive
+      // 
+      this.checkBoxActive.AutoSize = true;
+      this.checkBoxActive.Location = new System.Drawing.Point(92, 7);
+      this.checkBoxActive.Name = "checkBoxActive";
+      this.checkBoxActive.Size = new System.Drawing.Size(15, 14);
+      this.checkBoxActive.TabIndex = 2;
+      this.checkBoxActive.UseVisualStyleBackColor = true;
       // 
       // JsonItemBaseControl
@@ -124,33 +199,38 @@
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.textBoxDescription);
-      this.Controls.Add(this.labelDescription);
-      this.Controls.Add(this.labelEnable);
-      this.Controls.Add(this.checkBoxActive);
-      this.Controls.Add(this.textBoxActualName);
-      this.Controls.Add(this.labelActualName);
-      this.Controls.Add(this.textBoxName);
-      this.Controls.Add(this.label1);
+      this.Controls.Add(this.tableLayoutPanel1);
       this.errorProvider.SetIconAlignment(this, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
       this.Name = "JsonItemBaseControl";
       this.Padding = new System.Windows.Forms.Padding(3);
-      this.Size = new System.Drawing.Size(500, 154);
+      this.Size = new System.Drawing.Size(500, 394);
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+      this.tableLayoutPanel1.ResumeLayout(false);
+      this.panel4.ResumeLayout(false);
+      this.panel4.PerformLayout();
+      this.panel2.ResumeLayout(false);
+      this.panel2.PerformLayout();
+      this.panel1.ResumeLayout(false);
+      this.panel1.PerformLayout();
+      this.panel3.ResumeLayout(false);
+      this.panel3.PerformLayout();
       this.ResumeLayout(false);
-      this.PerformLayout();
 
     }
 
     #endregion
-
-    private System.Windows.Forms.Label labelEnable;
-    private System.Windows.Forms.CheckBox checkBoxActive;
-    private System.Windows.Forms.TextBox textBoxActualName;
-    private System.Windows.Forms.Label labelActualName;
-    private System.Windows.Forms.TextBox textBoxName;
-    private System.Windows.Forms.Label label1;
-    private System.Windows.Forms.Label labelDescription;
-    private System.Windows.Forms.TextBox textBoxDescription;
     protected System.Windows.Forms.ErrorProvider errorProvider;
+    protected System.Windows.Forms.Label labelEnable;
+    protected System.Windows.Forms.CheckBox checkBoxActive;
+    protected System.Windows.Forms.TextBox textBoxActualName;
+    protected System.Windows.Forms.Label labelActualName;
+    protected System.Windows.Forms.TextBox textBoxName;
+    protected System.Windows.Forms.Label label1;
+    protected System.Windows.Forms.Label labelDescription;
+    protected System.Windows.Forms.TextBox textBoxDescription;
+    private System.Windows.Forms.Panel panel1;
+    private System.Windows.Forms.Panel panel3;
+    private System.Windows.Forms.Panel panel2;
+    private System.Windows.Forms.Panel panel4;
+    protected System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
   }
 }
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Shared/JsonItemBaseControl.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Shared/JsonItemBaseControl.cs	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Shared/JsonItemBaseControl.cs	(revision 17464)
@@ -20,5 +20,16 @@
       InitializeComponent();
       VM = vm;
+      Init();
+    }
 
+    public JsonItemBaseControl(IJsonItemVM vm, UserControl control) {
+      InitializeComponent();
+      VM = vm;
+      tableLayoutPanel1.Controls.Add(control, 0, 4);
+      control.Dock = DockStyle.Fill;
+      Init();
+    }
+
+    private void Init() {
       checkBoxActive.DataBindings.Add("Checked", VM, nameof(IJsonItemVM.Selected),
         false, DataSourceUpdateMode.OnPropertyChanged);
@@ -27,9 +38,11 @@
       textBoxActualName.DataBindings.Add("Text", VM, nameof(IJsonItemVM.ActualName));
 
-      if (string.IsNullOrWhiteSpace(VM.Item.ActualName))
-        textBoxActualName.ReadOnly = true;
-      else
+      if (string.IsNullOrWhiteSpace(VM.Item.ActualName)) {
+        textBoxActualName.Enabled = false;
+        tableLayoutPanel1.Controls.Remove(panel4);
+        tableLayoutPanel1.RowStyles[3].Height = 0;
+        //textBoxActualName.ReadOnly = true;
+      } else
         textBoxActualName.Text = VM.Item.ActualName;
-
     }
 
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Shared/NumericRangeControl.Designer.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Shared/NumericRangeControl.Designer.cs	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Shared/NumericRangeControl.Designer.cs	(revision 17464)
@@ -40,8 +40,8 @@
             | System.Windows.Forms.AnchorStyles.Right)));
       this.errorProvider.SetIconAlignment(this.textBoxFrom, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
-      this.textBoxFrom.Location = new System.Drawing.Point(67, 17);
+      this.textBoxFrom.Location = new System.Drawing.Point(87, 16);
       this.textBoxFrom.Name = "textBoxFrom";
       this.textBoxFrom.ReadOnly = true;
-      this.textBoxFrom.Size = new System.Drawing.Size(253, 20);
+      this.textBoxFrom.Size = new System.Drawing.Size(407, 20);
       this.textBoxFrom.TabIndex = 2;
       this.textBoxFrom.Validating += new System.ComponentModel.CancelEventHandler(this.textBoxFrom_Validating);
@@ -56,5 +56,5 @@
       this.groupBox2.Location = new System.Drawing.Point(0, 0);
       this.groupBox2.Name = "groupBox2";
-      this.groupBox2.Size = new System.Drawing.Size(326, 75);
+      this.groupBox2.Size = new System.Drawing.Size(500, 75);
       this.groupBox2.TabIndex = 19;
       this.groupBox2.TabStop = false;
@@ -76,8 +76,8 @@
             | System.Windows.Forms.AnchorStyles.Right)));
       this.errorProvider.SetIconAlignment(this.textBoxTo, System.Windows.Forms.ErrorIconAlignment.TopLeft);
-      this.textBoxTo.Location = new System.Drawing.Point(67, 43);
+      this.textBoxTo.Location = new System.Drawing.Point(87, 42);
       this.textBoxTo.Name = "textBoxTo";
       this.textBoxTo.ReadOnly = true;
-      this.textBoxTo.Size = new System.Drawing.Size(253, 20);
+      this.textBoxTo.Size = new System.Drawing.Size(407, 20);
       this.textBoxTo.TabIndex = 6;
       this.textBoxTo.Validating += new System.ComponentModel.CancelEventHandler(this.textBoxTo_Validating);
@@ -104,5 +104,5 @@
       this.Controls.Add(this.groupBox2);
       this.Name = "NumericRangeControl";
-      this.Size = new System.Drawing.Size(326, 75);
+      this.Size = new System.Drawing.Size(500, 75);
       this.groupBox2.ResumeLayout(false);
       this.groupBox2.PerformLayout();
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/ViewModels/ArrayValueVM.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/ViewModels/ArrayValueVM.cs	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/ViewModels/ArrayValueVM.cs	(revision 17464)
@@ -16,5 +16,5 @@
 
     public override JsonItemBaseControl Control =>
-      new JsonItemDoubleArrayValueControl(this);
+      new JsonItemBaseControl(this, new JsonItemDoubleArrayValueControl(this));
     
     public override double[] Value {
@@ -35,5 +35,5 @@
 
     public override JsonItemBaseControl Control =>
-      new JsonItemIntArrayValueControl(this);
+      new JsonItemBaseControl(this, new JsonItemIntArrayValueControl(this));
     
     public override int[] Value {
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/ViewModels/MatrixValueVM.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/ViewModels/MatrixValueVM.cs	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/ViewModels/MatrixValueVM.cs	(revision 17464)
@@ -10,6 +10,6 @@
   public class DoubleMatrixValueVM : MatrixValueVM<double, DoubleMatrixJsonItem> {
     public override Type JsonItemType => typeof(DoubleMatrixJsonItem);
-    public override JsonItemBaseControl Control =>
-      new JsonItemDoubleMatrixValueControl(this);
+    public override JsonItemBaseControl Control => null;
+      //new JsonItemDoubleMatrixValueControl(this);
 
     public override double[][] Value {
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/ViewModels/NamedMatrixValueVM.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/ViewModels/NamedMatrixValueVM.cs	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/ViewModels/NamedMatrixValueVM.cs	(revision 17464)
@@ -9,5 +9,5 @@
     public override Type JsonItemType => typeof(DoubleNamedMatrixJsonItem);
     public override JsonItemBaseControl Control =>
-      new JsonItemDoubleNamedMatrixValueControl(this);
+      new JsonItemBaseControl(this, new JsonItemDoubleNamedMatrixValueControl(this));
 
     public override double[][] Value {
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/ViewModels/RangeVM.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/ViewModels/RangeVM.cs	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/ViewModels/RangeVM.cs	(revision 17464)
@@ -16,5 +16,5 @@
 
     public override JsonItemBaseControl Control =>
-      new JsonItemRangeControl(this);
+      new JsonItemBaseControl(this, new JsonItemRangeControl(this));
   }
 
@@ -27,5 +27,5 @@
 
     public override JsonItemBaseControl Control =>
-      new JsonItemRangeControl(this);
+      new JsonItemBaseControl(this, new JsonItemRangeControl(this));
   }
 
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/ViewModels/SingleValueVM.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/ViewModels/SingleValueVM.cs	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/ViewModels/SingleValueVM.cs	(revision 17464)
@@ -15,5 +15,5 @@
 
     public override JsonItemBaseControl Control =>
-      new JsonItemIntValueControl(this);
+      new JsonItemBaseControl(this, new JsonItemIntValueControl(this));
   }
 
@@ -25,5 +25,5 @@
 
     public override JsonItemBaseControl Control =>
-       new JsonItemDoubleValueControl(this);
+       new JsonItemBaseControl(this, new JsonItemDoubleValueControl(this));
   }
 
@@ -35,5 +35,5 @@
 
     public override JsonItemBaseControl Control =>
-       new JsonItemBoolControl(this);
+       new JsonItemBaseControl(this, new JsonItemBoolControl(this));
   }
 
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/ViewModels/StringValueVM.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/ViewModels/StringValueVM.cs	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/ViewModels/StringValueVM.cs	(revision 17464)
@@ -9,5 +9,5 @@
     public override Type JsonItemType => typeof(StringJsonItem);
     public override JsonItemBaseControl Control =>
-       new JsonItemValidValuesControl(this);
+       new JsonItemBaseControl(this, new JsonItemValidValuesControl(this));
 
     public string Value {
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemBoolControl.Designer.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemBoolControl.Designer.cs	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemBoolControl.Designer.cs	(revision 17464)
@@ -26,5 +26,4 @@
       this.checkBoxValue = new System.Windows.Forms.CheckBox();
       this.label2 = new System.Windows.Forms.Label();
-      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
       this.SuspendLayout();
       // 
@@ -34,5 +33,5 @@
             | System.Windows.Forms.AnchorStyles.Right)));
       this.checkBoxValue.AutoSize = true;
-      this.checkBoxValue.Location = new System.Drawing.Point(92, 101);
+      this.checkBoxValue.Location = new System.Drawing.Point(89, 1);
       this.checkBoxValue.Name = "checkBoxValue";
       this.checkBoxValue.Size = new System.Drawing.Size(15, 14);
@@ -43,5 +42,5 @@
       // 
       this.label2.AutoSize = true;
-      this.label2.Location = new System.Drawing.Point(6, 102);
+      this.label2.Location = new System.Drawing.Point(3, 1);
       this.label2.Name = "label2";
       this.label2.Size = new System.Drawing.Size(34, 13);
@@ -53,12 +52,8 @@
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.checkBoxValue);
       this.Controls.Add(this.label2);
-      this.Controls.Add(this.checkBoxValue);
-      this.errorProvider.SetIconAlignment(this, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
       this.Name = "JsonItemBoolControl";
-      this.Size = new System.Drawing.Size(500, 121);
-      this.Controls.SetChildIndex(this.checkBoxValue, 0);
-      this.Controls.SetChildIndex(this.label2, 0);
-      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+      this.Size = new System.Drawing.Size(500, 15);
       this.ResumeLayout(false);
       this.PerformLayout();
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemBoolControl.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemBoolControl.cs	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemBoolControl.cs	(revision 17464)
@@ -10,11 +10,8 @@
 
 namespace HeuristicLab.JsonInterface.OptimizerIntegration {
-  public partial class JsonItemBoolControl : JsonItemBaseControl {
-    private BoolValueVM VM { get; set; }
-
-    public JsonItemBoolControl(BoolValueVM vm) : base(vm) {
+  public partial class JsonItemBoolControl : UserControl {
+    public JsonItemBoolControl(BoolValueVM vm) {
       InitializeComponent();
-      VM = vm;
-      checkBoxValue.DataBindings.Add("Checked", VM, nameof(BoolValueVM.Value));
+      checkBoxValue.DataBindings.Add("Checked", vm, nameof(BoolValueVM.Value));
     }
   }
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemBoolControl.resx
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemBoolControl.resx	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemBoolControl.resx	(revision 17464)
@@ -118,6 +118,3 @@
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
-  <metadata name="errorProvider.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>17, 17</value>
-  </metadata>
 </root>
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemMultiValueControl.Designer.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemMultiValueControl.Designer.cs	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemMultiValueControl.Designer.cs	(revision 17464)
@@ -24,14 +24,16 @@
     /// </summary>
     private void InitializeComponent() {
+      this.components = new System.ComponentModel.Container();
       this.dataGridView = new System.Windows.Forms.DataGridView();
       this.numericRangeControl1 = new HeuristicLab.JsonInterface.OptimizerIntegration.NumericRangeControl();
       this.groupBox1 = new System.Windows.Forms.GroupBox();
+      this.textBoxColumns = new System.Windows.Forms.TextBox();
       this.textBoxRows = new System.Windows.Forms.TextBox();
       this.checkBoxColumns = new System.Windows.Forms.CheckBox();
       this.checkBoxRows = new System.Windows.Forms.CheckBox();
-      this.textBoxColumns = new System.Windows.Forms.TextBox();
-      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+      this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
       ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit();
       this.groupBox1.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
       this.SuspendLayout();
       // 
@@ -46,7 +48,7 @@
             | System.Windows.Forms.AnchorStyles.Right)));
       this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
-      this.dataGridView.Location = new System.Drawing.Point(6, 67);
+      this.dataGridView.Location = new System.Drawing.Point(9, 70);
       this.dataGridView.Name = "dataGridView";
-      this.dataGridView.Size = new System.Drawing.Size(473, 192);
+      this.dataGridView.Size = new System.Drawing.Size(487, 143);
       this.dataGridView.TabIndex = 13;
       // 
@@ -55,11 +57,14 @@
       this.numericRangeControl1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) 
             | System.Windows.Forms.AnchorStyles.Right)));
-      this.numericRangeControl1.Location = new System.Drawing.Point(9, 372);
+      this.numericRangeControl1.Location = new System.Drawing.Point(0, 225);
       this.numericRangeControl1.Name = "numericRangeControl1";
-      this.numericRangeControl1.Size = new System.Drawing.Size(487, 71);
+      this.numericRangeControl1.Size = new System.Drawing.Size(502, 71);
       this.numericRangeControl1.TabIndex = 14;
       // 
       // groupBox1
       // 
+      this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
       this.groupBox1.Controls.Add(this.textBoxColumns);
       this.groupBox1.Controls.Add(this.textBoxRows);
@@ -67,23 +72,34 @@
       this.groupBox1.Controls.Add(this.checkBoxRows);
       this.groupBox1.Controls.Add(this.dataGridView);
-      this.groupBox1.Location = new System.Drawing.Point(9, 101);
+      this.groupBox1.Location = new System.Drawing.Point(0, 0);
+      this.groupBox1.Margin = new System.Windows.Forms.Padding(0);
       this.groupBox1.Name = "groupBox1";
-      this.groupBox1.Size = new System.Drawing.Size(485, 265);
+      this.groupBox1.Size = new System.Drawing.Size(502, 222);
       this.groupBox1.TabIndex = 15;
       this.groupBox1.TabStop = false;
       this.groupBox1.Text = "Value";
-      this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-            | System.Windows.Forms.AnchorStyles.Left)
+      // 
+      // textBoxColumns
+      // 
+      this.textBoxColumns.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
             | System.Windows.Forms.AnchorStyles.Right)));
+      this.errorProvider.SetIconAlignment(this.textBoxRows, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+      this.textBoxColumns.Location = new System.Drawing.Point(86, 46);
+      this.textBoxColumns.Name = "textBoxColumns";
+      this.textBoxColumns.ReadOnly = true;
+      this.textBoxColumns.Size = new System.Drawing.Size(410, 20);
+      this.textBoxColumns.TabIndex = 17;
+      this.textBoxColumns.TextChanged += new System.EventHandler(this.textBoxColumns_TextChanged);
+      this.textBoxColumns.Validating += new System.ComponentModel.CancelEventHandler(this.textBoxColumns_Validating);
       // 
       // textBoxRows
       // 
       this.textBoxRows.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.errorProvider.SetIconAlignment(this.textBoxRows, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
-      this.textBoxRows.Location = new System.Drawing.Point(83, 17);
+            | System.Windows.Forms.AnchorStyles.Right))); 
+      this.errorProvider.SetIconAlignment(this.textBoxColumns, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+      this.textBoxRows.Location = new System.Drawing.Point(86, 20);
       this.textBoxRows.Name = "textBoxRows";
       this.textBoxRows.ReadOnly = true;
-      this.textBoxRows.Size = new System.Drawing.Size(396, 20);
+      this.textBoxRows.Size = new System.Drawing.Size(410, 20);
       this.textBoxRows.TabIndex = 16;
       this.textBoxRows.TextChanged += new System.EventHandler(this.textBoxRows_TextChanged);
@@ -93,5 +109,5 @@
       // 
       this.checkBoxColumns.AutoSize = true;
-      this.checkBoxColumns.Location = new System.Drawing.Point(7, 43);
+      this.checkBoxColumns.Location = new System.Drawing.Point(10, 46);
       this.checkBoxColumns.Name = "checkBoxColumns";
       this.checkBoxColumns.Size = new System.Drawing.Size(69, 17);
@@ -103,5 +119,5 @@
       // 
       this.checkBoxRows.AutoSize = true;
-      this.checkBoxRows.Location = new System.Drawing.Point(7, 20);
+      this.checkBoxRows.Location = new System.Drawing.Point(10, 23);
       this.checkBoxRows.Name = "checkBoxRows";
       this.checkBoxRows.Size = new System.Drawing.Size(56, 17);
@@ -110,16 +126,7 @@
       this.checkBoxRows.UseVisualStyleBackColor = true;
       // 
-      // textBoxColumns
+      // errorProvider
       // 
-      this.textBoxColumns.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.errorProvider.SetIconAlignment(this.textBoxColumns, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
-      this.textBoxColumns.Location = new System.Drawing.Point(83, 43);
-      this.textBoxColumns.Name = "textBoxColumns";
-      this.textBoxColumns.ReadOnly = true;
-      this.textBoxColumns.Size = new System.Drawing.Size(396, 20);
-      this.textBoxColumns.TabIndex = 17;
-      this.textBoxColumns.TextChanged += new System.EventHandler(this.textBoxColumns_TextChanged);
-      this.textBoxColumns.Validating += new System.ComponentModel.CancelEventHandler(this.textBoxColumns_Validating);
+      this.errorProvider.ContainerControl = this;
       // 
       // JsonItemMultiValueControl
@@ -131,13 +138,10 @@
       this.errorProvider.SetIconAlignment(this, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
       this.Name = "JsonItemMultiValueControl";
-      this.Size = new System.Drawing.Size(502, 449);
-      this.Controls.SetChildIndex(this.numericRangeControl1, 0);
-      this.Controls.SetChildIndex(this.groupBox1, 0);
-      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+      this.Size = new System.Drawing.Size(502, 296);
       ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit();
       this.groupBox1.ResumeLayout(false);
       this.groupBox1.PerformLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
       this.ResumeLayout(false);
-      this.PerformLayout();
 
     }
@@ -152,4 +156,5 @@
     private System.Windows.Forms.TextBox textBoxRows;
     private System.Windows.Forms.TextBox textBoxColumns;
+    private System.Windows.Forms.ErrorProvider errorProvider;
   }
 }
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemMultiValueControl.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemMultiValueControl.cs	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemMultiValueControl.cs	(revision 17464)
@@ -10,5 +10,5 @@
 
 namespace HeuristicLab.JsonInterface.OptimizerIntegration {
-
+  
   public class JsonItemDoubleNamedMatrixValueControl : JsonItemMultiValueControl<double> {
     protected override IEnumerable<string> RowNames { 
@@ -65,5 +65,6 @@
   }
   
-  public abstract partial class JsonItemMultiValueControl<T> : JsonItemBaseControl {
+  public abstract partial class JsonItemMultiValueControl<T> : UserControl {
+    protected IJsonItemVM VM { get; set; }
     protected NumericRangeControl NumericRangeControl { get; set; }
     private int _rows;
@@ -90,7 +91,7 @@
     protected abstract IEnumerable<string> ColumnNames { get; set; }
 
-    public JsonItemMultiValueControl(IMatrixJsonItemVM vm, T[][] matrix) : base(vm) {
+    public JsonItemMultiValueControl(IMatrixJsonItemVM vm, T[][] matrix) /*: base(vm)*/ {
       InitializeComponent();
-
+      VM = vm;
       checkBoxRows.DataBindings.Add("Checked", vm, nameof(IMatrixJsonItemVM.RowsResizable));
       checkBoxColumns.DataBindings.Add("Checked", vm, nameof(IMatrixJsonItemVM.ColumnsResizable));
@@ -108,7 +109,7 @@
     }
     
-    public JsonItemMultiValueControl(IArrayJsonItemVM vm, T[] array) : base(vm) {
+    public JsonItemMultiValueControl(IArrayJsonItemVM vm, T[] array) /*: base(vm)*/ {
       InitializeComponent();
-
+      VM = vm;
       checkBoxRows.DataBindings.Add("Checked", vm, nameof(IArrayJsonItemVM.Resizable));
 
@@ -117,10 +118,4 @@
       Matrix = new T[1][];
       Matrix[0] = array;
-      /*
-      for (int r = 0; r < length; ++r) {
-        Matrix[r] = new T[1];
-        Matrix[r][0] = array[r];
-      }
-      */
       _cols = 1;
       _rows = length;
@@ -158,5 +153,5 @@
       T[][] tmp = Matrix;
       Matrix = new T[Columns][];
-
+      
       // columns must added first
       if(RowNames != null && RowNames.Count() == Columns) {
@@ -191,4 +186,5 @@
       }
       dataGridView.RowHeadersWidth = 100;
+      
     }
 
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemRangeControl.Designer.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemRangeControl.Designer.cs	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemRangeControl.Designer.cs	(revision 17464)
@@ -24,4 +24,5 @@
     /// </summary>
     private void InitializeComponent() {
+      this.components = new System.ComponentModel.Container();
       this.groupBox1 = new System.Windows.Forms.GroupBox();
       this.textBoxValueTo = new System.Windows.Forms.TextBox();
@@ -30,6 +31,7 @@
       this.label2 = new System.Windows.Forms.Label();
       this.numericRangeControl = new HeuristicLab.JsonInterface.OptimizerIntegration.NumericRangeControl();
+      this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
+      this.groupBox1.SuspendLayout();
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
-      this.groupBox1.SuspendLayout();
       this.SuspendLayout();
       // 
@@ -42,7 +44,8 @@
       this.groupBox1.Controls.Add(this.label4);
       this.groupBox1.Controls.Add(this.label2);
-      this.groupBox1.Location = new System.Drawing.Point(7, 101);
+      this.groupBox1.Location = new System.Drawing.Point(0, 0);
+      this.groupBox1.Margin = new System.Windows.Forms.Padding(0);
       this.groupBox1.Name = "groupBox1";
-      this.groupBox1.Size = new System.Drawing.Size(487, 65);
+      this.groupBox1.Size = new System.Drawing.Size(500, 68);
       this.groupBox1.TabIndex = 17;
       this.groupBox1.TabStop = false;
@@ -53,14 +56,16 @@
       this.textBoxValueTo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
             | System.Windows.Forms.AnchorStyles.Right)));
-      this.textBoxValueTo.Location = new System.Drawing.Point(83, 39);
+      this.textBoxValueTo.Location = new System.Drawing.Point(85, 39);
       this.textBoxValueTo.Name = "textBoxValueTo";
-      this.textBoxValueTo.Size = new System.Drawing.Size(398, 20);
+      this.textBoxValueTo.Size = new System.Drawing.Size(409, 20);
       this.textBoxValueTo.TabIndex = 3;
       // 
       // textBoxValueFrom
       // 
-      this.textBoxValueFrom.Location = new System.Drawing.Point(83, 13);
+      this.textBoxValueFrom.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.textBoxValueFrom.Location = new System.Drawing.Point(85, 13);
       this.textBoxValueFrom.Name = "textBoxValueFrom";
-      this.textBoxValueFrom.Size = new System.Drawing.Size(398, 20);
+      this.textBoxValueFrom.Size = new System.Drawing.Size(409, 20);
       this.textBoxValueFrom.TabIndex = 2;
       // 
@@ -91,8 +96,12 @@
       this.numericRangeControl.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
             | System.Windows.Forms.AnchorStyles.Right)));
-      this.numericRangeControl.Location = new System.Drawing.Point(7, 172);
+      this.numericRangeControl.Location = new System.Drawing.Point(0, 71);
       this.numericRangeControl.Name = "numericRangeControl";
-      this.numericRangeControl.Size = new System.Drawing.Size(487, 74);
+      this.numericRangeControl.Size = new System.Drawing.Size(500, 74);
       this.numericRangeControl.TabIndex = 18;
+      // 
+      // errorProvider
+      // 
+      this.errorProvider.ContainerControl = this;
       // 
       // JsonItemRangeControl
@@ -104,12 +113,9 @@
       this.errorProvider.SetIconAlignment(this, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
       this.Name = "JsonItemRangeControl";
-      this.Size = new System.Drawing.Size(500, 252);
-      this.Controls.SetChildIndex(this.groupBox1, 0);
-      this.Controls.SetChildIndex(this.numericRangeControl, 0);
-      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+      this.Size = new System.Drawing.Size(500, 146);
       this.groupBox1.ResumeLayout(false);
       this.groupBox1.PerformLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
       this.ResumeLayout(false);
-      this.PerformLayout();
 
     }
@@ -123,4 +129,5 @@
     private System.Windows.Forms.Label label2;
     private NumericRangeControl numericRangeControl;
+    private System.Windows.Forms.ErrorProvider errorProvider;
   }
 }
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemRangeControl.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemRangeControl.cs	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemRangeControl.cs	(revision 17464)
@@ -11,8 +11,11 @@
 
 namespace HeuristicLab.JsonInterface.OptimizerIntegration {
-  public partial class JsonItemRangeControl : JsonItemBaseControl {
+  public partial class JsonItemRangeControl : UserControl {
+    IJsonItemVM VM { get; set; }
 
-    public JsonItemRangeControl(DoubleRangeVM vm) : base(vm) {
+
+    public JsonItemRangeControl(DoubleRangeVM vm) {
       InitializeComponent();
+      VM = vm;
       textBoxValueFrom.DataBindings.Add("Text", vm, nameof(vm.MinValue));
       textBoxValueTo.DataBindings.Add("Text", vm, nameof(vm.MaxValue));
@@ -20,6 +23,7 @@
 
     }
-    public JsonItemRangeControl(IntRangeVM vm) : base(vm) {
+    public JsonItemRangeControl(IntRangeVM vm) {
       InitializeComponent();
+      VM = vm;
       textBoxValueFrom.DataBindings.Add("Text", vm, nameof(vm.MinValue));
       textBoxValueTo.DataBindings.Add("Text", vm, nameof(vm.MaxValue));
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemValidValuesControl.Designer.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemValidValuesControl.Designer.cs	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemValidValuesControl.Designer.cs	(revision 17464)
@@ -24,9 +24,12 @@
     /// </summary>
     private void InitializeComponent() {
+      this.components = new System.ComponentModel.Container();
       this.tableOptions = new System.Windows.Forms.TableLayoutPanel();
       this.comboBoxValues = new System.Windows.Forms.ComboBox();
       this.label2 = new System.Windows.Forms.Label();
       this.groupBoxRange = new System.Windows.Forms.GroupBox();
+      this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
       this.groupBoxRange.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
       this.SuspendLayout();
       // 
@@ -44,5 +47,5 @@
       this.tableOptions.RowCount = 1;
       this.tableOptions.RowStyles.Add(new System.Windows.Forms.RowStyle());
-      this.tableOptions.Size = new System.Drawing.Size(482, 170);
+      this.tableOptions.Size = new System.Drawing.Size(491, 190);
       this.tableOptions.TabIndex = 12;
       // 
@@ -53,7 +56,8 @@
       this.comboBoxValues.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
       this.comboBoxValues.FormattingEnabled = true;
-      this.comboBoxValues.Location = new System.Drawing.Point(92, 101);
+      this.comboBoxValues.Location = new System.Drawing.Point(89, 1);
+      this.comboBoxValues.Margin = new System.Windows.Forms.Padding(0);
       this.comboBoxValues.Name = "comboBoxValues";
-      this.comboBoxValues.Size = new System.Drawing.Size(402, 21);
+      this.comboBoxValues.Size = new System.Drawing.Size(408, 21);
       this.comboBoxValues.TabIndex = 15;
       // 
@@ -61,5 +65,5 @@
       // 
       this.label2.AutoSize = true;
-      this.label2.Location = new System.Drawing.Point(6, 104);
+      this.label2.Location = new System.Drawing.Point(3, 1);
       this.label2.Name = "label2";
       this.label2.Size = new System.Drawing.Size(34, 13);
@@ -73,10 +77,15 @@
             | System.Windows.Forms.AnchorStyles.Right)));
       this.groupBoxRange.Controls.Add(this.tableOptions);
-      this.groupBoxRange.Location = new System.Drawing.Point(6, 128);
+      this.groupBoxRange.Location = new System.Drawing.Point(0, 22);
+      this.groupBoxRange.Margin = new System.Windows.Forms.Padding(0, 3, 0, 0);
       this.groupBoxRange.Name = "groupBoxRange";
-      this.groupBoxRange.Size = new System.Drawing.Size(488, 189);
+      this.groupBoxRange.Size = new System.Drawing.Size(497, 209);
       this.groupBoxRange.TabIndex = 17;
       this.groupBoxRange.TabStop = false;
       this.groupBoxRange.Text = "Range";
+      // 
+      // errorProvider
+      // 
+      this.errorProvider.ContainerControl = this;
       // 
       // JsonItemValidValuesControl
@@ -88,10 +97,9 @@
       this.Controls.Add(this.comboBoxValues);
       this.ForeColor = System.Drawing.Color.Black;
+      this.errorProvider.SetIconAlignment(this, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
       this.Name = "JsonItemValidValuesControl";
-      this.Size = new System.Drawing.Size(500, 323);
-      this.Controls.SetChildIndex(this.comboBoxValues, 0);
-      this.Controls.SetChildIndex(this.label2, 0);
-      this.Controls.SetChildIndex(this.groupBoxRange, 0);
+      this.Size = new System.Drawing.Size(500, 231);
       this.groupBoxRange.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
       this.ResumeLayout(false);
       this.PerformLayout();
@@ -104,4 +112,5 @@
     private System.Windows.Forms.Label label2;
     private System.Windows.Forms.GroupBox groupBoxRange;
+    private System.Windows.Forms.ErrorProvider errorProvider;
   }
 }
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemValidValuesControl.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemValidValuesControl.cs	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemValidValuesControl.cs	(revision 17464)
@@ -10,8 +10,11 @@
 
 namespace HeuristicLab.JsonInterface.OptimizerIntegration {
-  public partial class JsonItemValidValuesControl : JsonItemBaseControl {
+  public partial class JsonItemValidValuesControl : UserControl {
 
-    public JsonItemValidValuesControl(StringValueVM vm) : base(vm) {
+    IJsonItemVM VM { get; set; }
+
+    public JsonItemValidValuesControl(StringValueVM vm) {
       InitializeComponent();
+      VM = vm;
       if (VM.Item.Range != null) {
         foreach (var i in VM.Item.Range)
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemValidValuesControl.resx
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemValidValuesControl.resx	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemValidValuesControl.resx	(revision 17464)
@@ -118,3 +118,6 @@
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
+  <metadata name="errorProvider.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
 </root>
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemValueControl.Designer.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemValueControl.Designer.cs	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemValueControl.Designer.cs	(revision 17464)
@@ -24,7 +24,10 @@
     /// </summary>
     private void InitializeComponent() {
+      this.components = new System.ComponentModel.Container();
       this.textBoxValue = new System.Windows.Forms.TextBox();
       this.label2 = new System.Windows.Forms.Label();
       this.numericRangeControl1 = new HeuristicLab.JsonInterface.OptimizerIntegration.NumericRangeControl();
+      this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
       this.SuspendLayout();
       // 
@@ -33,7 +36,8 @@
       this.textBoxValue.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
             | System.Windows.Forms.AnchorStyles.Right)));
-      this.textBoxValue.Location = new System.Drawing.Point(92, 101);
+      this.textBoxValue.Location = new System.Drawing.Point(89, 1);
+      this.textBoxValue.Margin = new System.Windows.Forms.Padding(0);
       this.textBoxValue.Name = "textBoxValue";
-      this.textBoxValue.Size = new System.Drawing.Size(402, 20);
+      this.textBoxValue.Size = new System.Drawing.Size(408, 20);
       this.textBoxValue.TabIndex = 14;
       this.textBoxValue.Validating += new System.ComponentModel.CancelEventHandler(this.textBoxValue_Validating);
@@ -42,5 +46,5 @@
       // 
       this.label2.AutoSize = true;
-      this.label2.Location = new System.Drawing.Point(6, 104);
+      this.label2.Location = new System.Drawing.Point(3, 1);
       this.label2.Name = "label2";
       this.label2.Size = new System.Drawing.Size(34, 13);
@@ -52,8 +56,13 @@
       this.numericRangeControl1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
             | System.Windows.Forms.AnchorStyles.Right)));
-      this.numericRangeControl1.Location = new System.Drawing.Point(9, 125);
+      this.numericRangeControl1.Location = new System.Drawing.Point(0, 24);
+      this.numericRangeControl1.Margin = new System.Windows.Forms.Padding(0, 3, 0, 0);
       this.numericRangeControl1.Name = "numericRangeControl1";
-      this.numericRangeControl1.Size = new System.Drawing.Size(485, 72);
+      this.numericRangeControl1.Size = new System.Drawing.Size(497, 72);
       this.numericRangeControl1.TabIndex = 16;
+      // 
+      // errorProvider
+      // 
+      this.errorProvider.ContainerControl = this;
       // 
       // JsonItemValueControl
@@ -64,9 +73,8 @@
       this.Controls.Add(this.label2);
       this.Controls.Add(this.textBoxValue);
+      this.errorProvider.SetIconAlignment(this, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
       this.Name = "JsonItemValueControl";
-      this.Size = new System.Drawing.Size(500, 199);
-      this.Controls.SetChildIndex(this.textBoxValue, 0);
-      this.Controls.SetChildIndex(this.label2, 0);
-      this.Controls.SetChildIndex(this.numericRangeControl1, 0);
+      this.Size = new System.Drawing.Size(500, 97);
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
       this.ResumeLayout(false);
       this.PerformLayout();
@@ -79,4 +87,5 @@
     private System.Windows.Forms.Label label2;
     private NumericRangeControl numericRangeControl1;
+    private System.Windows.Forms.ErrorProvider errorProvider;
   }
 }
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemValueControl.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemValueControl.cs	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemValueControl.cs	(revision 17464)
@@ -34,6 +34,7 @@
   }
   
-  public abstract partial class JsonItemValueControl : JsonItemBaseControl {
+  public abstract partial class JsonItemValueControl : UserControl {
     #region Protected Properties
+    protected IJsonItemVM VM { get; set; }
     protected TextBox TBValue { get; set; }
     protected NumericRangeControl NumericRangeControl { get; set; }
@@ -44,6 +45,7 @@
     #endregion
 
-    public JsonItemValueControl(JsonItemVMBase vm) : base(vm) {
+    public JsonItemValueControl(JsonItemVMBase vm) {
       InitializeComponent();
+      VM = vm;
       TBValue = textBoxValue;
       NumericRangeControl = numericRangeControl1;
@@ -51,5 +53,5 @@
     
     protected void Init() { 
-      TBValue.DataBindings.Add("Text", base.VM, ValuePropertyId);
+      TBValue.DataBindings.Add("Text", VM, ValuePropertyId);
       NumericRangeControl.TBMinRange.DataBindings.Add("Text", VM, nameof(RangedValueBaseVM.MinRange));
       NumericRangeControl.TBMaxRange.DataBindings.Add("Text", VM, nameof(RangedValueBaseVM.MaxRange));
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemValueControl.resx
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemValueControl.resx	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemValueControl.resx	(revision 17464)
@@ -118,3 +118,6 @@
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
+  <metadata name="errorProvider.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
 </root>
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/RegressionProblemDataConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/RegressionProblemDataConverter.cs	(revision 17463)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/RegressionProblemDataConverter.cs	(revision 17464)
@@ -17,17 +17,5 @@
 
     public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) {
-      //Dictionary<string, IList<double>> dict = null;
       var dictTmp = new Dictionary<string, IList>();
-      /*if (data.Children[0].Value is JObject jObj) {
-        dict = jObj.ToObject<Dictionary<string, IList<double>>>();
-        foreach (var x in dict) {
-          dictTmp.Add(x.Key, (IList)x.Value);
-        }
-      } else if(data.Children[0].Value is Dictionary<string, IList<double>> d) {
-        dict = d;
-      } else {
-        dictTmp = (Dictionary<string, IList>)data.Children[0].Value;
-      }
-      */
       DoubleNamedMatrixJsonItem matrix = data.Children[0] as DoubleNamedMatrixJsonItem;
       if(matrix != null) {
@@ -74,4 +62,5 @@
           int r = 0;
           foreach(var rowValue in x.Value) {
+            // TODO: for integers and bools aswell
             mat[c][r] = (double)rowValue; 
             ++r;
