Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/BaseConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/BaseConverter.cs	(revision 17370)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/BaseConverter.cs	(revision 17371)
@@ -86,4 +86,7 @@
 
     protected object GetDefaultValue(Type t) => t.IsValueType ? Activator.CreateInstance(t) : null;
+
+    
+
     #endregion
   }
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/CheckedItemListConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/CheckedItemListConverter.cs	(revision 17371)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/CheckedItemListConverter.cs	(revision 17371)
@@ -0,0 +1,40 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using HeuristicLab.Core;
+
+namespace HeuristicLab.JsonInterface.Converters {
+  public class CheckedItemListConverter : BaseConverter {
+    public override JsonItem ExtractData(IItem value) {
+      /*
+      ICheckedItemList<IItem> list = value as ICheckedItemList<IItem>;
+
+      IList<JsonItem> items = new List<JsonItem>();
+
+      foreach(var i in list) {
+        items.Add(new JsonItem() {
+          Name = op.Name,
+          Value = val.Operators.ItemChecked(op),
+          Range = new object[] { false, true },
+          Path = data.Path + "." + op.Name
+        });
+      }
+      list.ItemChecked
+
+      data.Operators.Add(new JsonItem() {
+        Name = op.Name,
+        Value = val.Operators.ItemChecked(op),
+        Range = new object[] { false, true },
+        Path = data.Path + "." + op.Name
+      });
+      */
+      throw new NotImplementedException();
+    }
+
+    public override void InjectData(IItem item, JsonItem data) {
+      throw new NotImplementedException();
+    }
+  }
+}
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ConfigurableConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ConfigurableConverter.cs	(revision 17371)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ConfigurableConverter.cs	(revision 17371)
@@ -0,0 +1,200 @@
+﻿using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+using HeuristicLab.Core;
+
+
+using DefaultValueCb = System.Func<object>;
+using RangeCb = System.Func<object[]>;
+using ExtractCb = System.Func<object, System.Type, System.Collections.Generic.IEnumerable<HeuristicLab.JsonInterface.JsonItem>>;
+
+namespace HeuristicLab.JsonInterface {
+
+  /* 
+   * Converter der mit Hilfe einer Konfiguration einen Typen
+   * konvertieren kann. In einer Konfiguration sollten (als String)
+   * die Properties/Fields stehen, welche er zur Umwandlung benutzt.
+   * Wenn nur ein Property/Field konfiguriert ist, wird ein einfaches
+   * JsonItem erstellt. Bei mehreren Properties/Fields werden diese
+   * Daten als Parameter eingefügt. 
+   * 
+   */
+
+  public enum ElementType { None, Property, Field }
+
+  public class ConfigurableConverter : BaseConverter {
+    public class Config {
+      public string ElementName { get; set; }
+      public ElementType ElementType { get; set; }
+      public DefaultValueCb DefaultValue { get; set; }
+      public RangeCb Range { get; set; }
+      public ExtractCb Extract { get; set; }
+    }
+
+    private const BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance;
+    
+    private IDictionary<string, Config> PConfigs { get; set; }
+      = new Dictionary<string, Config>();
+
+    private IDictionary<string, Config> FConfigs { get; set; }
+      = new Dictionary<string, Config>();
+
+    private IList<Config> TConfigs { get; set; } = new List<Config>();
+
+
+    public ConfigurableConverter Primitive(string elementName, ElementType elementType, object defaultValue, params object[] range) =>
+      Primitive(elementName, elementType, () => defaultValue, () => range);
+
+    public ConfigurableConverter Primitive(string elementName, ElementType elementType, DefaultValueCb defaultValue) =>
+      Primitive(elementName, elementType, defaultValue, () => new object[] { });
+
+    public ConfigurableConverter Primitive(string elementName, ElementType elementType, DefaultValueCb defaultValue, RangeCb range) =>
+      Add(elementName, elementType, defaultValue, range, (o,t) => {
+        if (!t.IsPrimitive)
+          throw new InvalidCastException($"Type {t.Name} is not a primitive type!");
+        return new JsonItem[] {
+          new JsonItem() {
+            Name = elementName,
+            Value = o,
+            Range = range().Length == 0 ? 
+              new object[] { GetMinValue(t), GetMaxValue(t) } : 
+              range()
+          }
+        };
+      });
+
+    public ConfigurableConverter IItem(string elementName, DefaultValueCb defaultValue, RangeCb range, ElementType elementType) =>
+      Add(elementName, elementType, defaultValue, range, (o,t) => {
+        if (!t.IsEqualTo(typeof(IItem)))
+          throw new InvalidCastException($"Type {t.Name} is not an IItem!");
+        return new JsonItem[] {
+          JsonItemConverter.Extract(o as IItem)
+        };
+      });
+
+    public ConfigurableConverter Enumerable(string elementName, ElementType elementType, ExtractCb extract) =>
+      Add(elementName, elementType, null, null, (o,t) => {
+        if (!t.IsEqualTo(typeof(IEnumerable)))
+          throw new InvalidCastException($"Type {t.Name} is not an IEnumerable!");
+        return extract(o,t);
+      });
+
+    public ConfigurableConverter PrimitiveEnumerable(string elementName, ElementType elementType, object defaultValue) =>
+      PrimitiveEnumerable(elementName, elementType, () => defaultValue);
+
+    public ConfigurableConverter PrimitiveEnumerable(string elementName, ElementType elementType, DefaultValueCb defaultValue) =>
+      Add(elementName, elementType, defaultValue, null, (o,t) => {
+        if (!t.IsEqualTo(typeof(IEnumerable)))
+          throw new InvalidCastException($"Type {t.Name} is not an IEnumerable!");
+
+        return new JsonItem[] {
+            new JsonItem() {
+              Name = elementName,
+              Value = o != null ? o : defaultValue()
+            }
+          };
+      });
+
+    public ConfigurableConverter This(ExtractCb extract) =>
+      Add(null, ElementType.None, null, null, extract);
+
+    public ConfigurableConverter Add(string elementName, ElementType elementType, DefaultValueCb defaultValue, RangeCb range, ExtractCb extract)
+      => Add(new Config() { ElementName = elementName, 
+                            ElementType = elementType,
+                            DefaultValue = defaultValue,
+                            Range = range,
+                            Extract = extract 
+                          });
+
+    public ConfigurableConverter Add(Config config) {
+      switch(config.ElementType) {
+        case ElementType.None:
+          TConfigs.Add(config);
+          break;
+        case ElementType.Field:
+          FConfigs.Add(config.ElementName, config);
+          break;
+        case ElementType.Property:
+          PConfigs.Add(config.ElementName, config);
+          break;
+      }
+      return this;
+    }
+
+    public override JsonItem ExtractData(IItem value) {
+      List<JsonItem> parameters = new List<JsonItem>();
+      Type type = value.GetType();
+
+      // Properties
+      parameters.AddRange(IterateMemberInfo(value, type.GetProperties(flags), s => { 
+        return PConfigs.TryGetValue(s, out Config c) ? c : null; 
+      }));
+
+      // Fields
+      parameters.AddRange(IterateMemberInfo(value, type.GetFields(flags), s => { 
+        return FConfigs.TryGetValue(s, out Config c) ? c : null; 
+      }));
+
+      // This Calls
+      foreach (var c in TConfigs)
+        parameters.AddRange(c.Extract(value, value.GetType()));
+
+      JsonItem item = new JsonItem() {
+        Parameters = parameters,
+        Path = value.ItemName,
+        Type = type.AssemblyQualifiedName
+      };
+
+      item.UpdatePath();
+
+      return item;
+    }
+
+    public override void InjectData(IItem item, JsonItem data) {
+      throw new NotImplementedException();
+    }
+
+    private IEnumerable<JsonItem> IterateMemberInfo(IItem item, IEnumerable<MemberInfo> infos, Func<string, Config> selector) {
+      List<JsonItem> parameters = new List<JsonItem>();
+      foreach(var info in infos) {
+        Config config = selector(info.Name);
+        if (config != null) {
+          object o = GetValue(info, item);
+          parameters.AddRange(config.Extract(o, GetType(info)));
+        }
+      }
+      return parameters;
+    }
+
+    private JsonItem ConvertPrimitive(string name, object obj) =>
+      new JsonItem() {
+        Name = name,
+        Value = obj
+      };
+
+    private object GetValue(MemberInfo info, object obj) {
+      switch (info.MemberType) {
+        case MemberTypes.Field:
+          return (info as FieldInfo).GetValue(obj);
+        case MemberTypes.Property:
+          PropertyInfo pi = info as PropertyInfo;
+          return (pi != null && pi.CanRead) ? pi.GetValue(obj) : null;
+        default: return null;
+      }
+    }
+
+    private Type GetType(MemberInfo info) {
+      switch (info.MemberType) {
+        case MemberTypes.Field:
+          return (info as FieldInfo).FieldType;
+        case MemberTypes.Property:
+          return (info as PropertyInfo).PropertyType;
+        default: return null;
+      }
+    }
+  }
+}
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ItemCollectionConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ItemCollectionConverter.cs	(revision 17371)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ItemCollectionConverter.cs	(revision 17371)
@@ -0,0 +1,31 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using HeuristicLab.Core;
+
+namespace HeuristicLab.JsonInterface.Converters {
+  public class ItemCollectionConverter : BaseConverter {
+    public override JsonItem ExtractData(IItem value) {
+      IItemCollection<IItem> col = value as IItemCollection<IItem>;
+      IList<JsonItem> items = new List<JsonItem>();
+
+      foreach (var x in col)
+        items.Add(JsonItemConverter.Extract(x));
+
+      return new JsonItem() {
+        Parameters = items
+      };
+    }
+
+    public override void InjectData(IItem item, JsonItem data) {
+      IItemCollection<IItem> col = item as IItemCollection<IItem>;
+      foreach (var x in data.Parameters) {
+        IItem tmp = Instantiate(col.GetType().GetGenericArguments()[0]);
+        JsonItemConverter.Inject(tmp, x);
+        col.Add(tmp);
+      }
+    }
+  }
+}
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/PrimitiveConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/PrimitiveConverter.cs	(revision 17371)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/PrimitiveConverter.cs	(revision 17371)
@@ -0,0 +1,18 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using HeuristicLab.Core;
+
+namespace HeuristicLab.JsonInterface.Converters {
+  public class PrimitiveConverter<T> : BaseConverter where T : struct {
+    public override JsonItem ExtractData(IItem value) {
+      throw new NotImplementedException();
+    }
+
+    public override void InjectData(IItem item, JsonItem data) {
+      throw new NotImplementedException();
+    }
+  }
+}
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/HeuristicLab.JsonInterface.csproj
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/HeuristicLab.JsonInterface.csproj	(revision 17370)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/HeuristicLab.JsonInterface.csproj	(revision 17371)
@@ -63,5 +63,9 @@
     <Compile Include="Attributes\ConvertableAttribute.cs" />
     <Compile Include="Constants.cs" />
+    <Compile Include="Converters\CheckedItemListConverter.cs" />
+    <Compile Include="Converters\ConfigurableConverter.cs" />
+    <Compile Include="Converters\ItemCollectionConverter.cs" />
     <Compile Include="Converters\ParameterConverter.cs" />
+    <Compile Include="Converters\PrimitiveConverter.cs" />
     <Compile Include="Converters\StorableConverter.cs" />
     <Compile Include="Converters\ValueLookupParameterConverter.cs" />
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/JsonItem.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/JsonItem.cs	(revision 17370)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/JsonItem.cs	(revision 17371)
@@ -133,6 +133,13 @@
     public static JsonItem BuildJsonItem(JObject obj, IDictionary<string, string> typeList) {
       object val = obj[nameof(Value)]?.ToObject<object>();
-      if (val is JContainer)
-        val = ((JContainer)val).ToObject<object[]>();
+      if (val is JContainer) {
+        //try {
+          val = ((JContainer)val).ToObject<object[]>();
+        /*} catch (Exception) { }
+        try {
+          val = ((JContainer)val).ToObject<object[,]>();
+        } catch (Exception) { }*/
+      }
+        
 
       return new JsonItem() {
Index: /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/JsonItemConverter.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/JsonItemConverter.cs	(revision 17370)
+++ /branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/JsonItemConverter.cs	(revision 17371)
@@ -6,4 +6,7 @@
 using HeuristicLab.Core;
 using HeuristicLab.Data;
+using HeuristicLab.PluginInfrastructure;
+using HEAL.Attic;
+using System.Collections;
 
 namespace HeuristicLab.JsonInterface {
@@ -30,4 +33,14 @@
       if (!Converters.ContainsKey(type))
         Converters.Add(type, new ConverterPriorityContainer() { Converter = converter, Priority = priority });
+    }
+
+
+    public static void Register(string atticGuid, IJsonItemConverter converter, int priority) =>
+      Register(new Guid(atticGuid), converter, priority);
+
+    public static void Register(Guid atticGuid, IJsonItemConverter converter, int priority) {
+      if (Mapper.StaticCache.TryGetType(atticGuid, out Type type)) {
+        Register(type, converter, priority);
+      }
     }
 
@@ -68,4 +81,9 @@
         return best.Converter;
       }
+
+      Type t = Mapper.StaticCache.GetType(new Guid("25137f88-66b9-48d7-a2bd-60190082e044"));
+
+      
+
       return new DummyConverter();
     }
@@ -113,4 +131,55 @@
       Register(typeof(IConstrainedValueParameter<>), new ConstrainedValueParameterConverter(), 3);
       Register(typeof(ICheckedMultiOperator<>), new MultiCheckedOperatorConverter(), 3);
+
+      //ApplicationManager.Manager
+      // "25137f88-66b9-48d7-a2bd-60190082e044"
+      //new Guid("25137f88-66b9-48d7-a2bd-60190082e044")
+      // ISymbol
+
+      Register("25137f88-66b9-48d7-a2bd-60190082e044", 
+        new ConfigurableConverter()
+        .Primitive("InitialFrequency", ElementType.Property, new object[] { 0.0, 1.0 })
+        .Primitive("Enabled", ElementType.Property, true)
+        .Primitive("MinimumArity", ElementType.Property, 0)
+        .Primitive("MaximumArity", ElementType.Property, 10),
+        5);
+
+      // Dataset
+      Register("49F4D145-50D7-4497-8D8A-D190CD556CC8",
+        new ConfigurableConverter() //TODO: set guid to enable inheritance?
+        /*.PrimitiveEnumerable("VariableNames", ElementType.Property)
+        .PrimitiveEnumerable("DoubleVariables", ElementType.Property)
+        .PrimitiveEnumerable("StringVariables", ElementType.Property)
+        .PrimitiveEnumerable("DateTimeVariables", ElementType.Property)*/
+        .PrimitiveEnumerable("storableData", ElementType.Field, new double[,] { }),
+        5);
+
+      // ICheckedItemList<>
+      Register("ba4a82ca-92eb-47a1-95a7-f41f6ef470f4",
+        new ConfigurableConverter()
+        .This((o,t) => {
+          dynamic itemList = o as dynamic;
+          IList<JsonItem> jsonItems = new List<JsonItem>();
+          int count = 0;
+          foreach(var obj in itemList) {
+            IItem item = obj as IItem;
+            JsonItem checkedStatus = new JsonItem() {
+              Name = "Checked",
+              Value = itemList.ItemChecked(obj),
+              Range = new object[] { false, true }
+            };
+            JsonItem value = Extract(item);
+
+            jsonItems.Add(new JsonItem() {
+              Name = item.ItemName + count++,
+              Parameters = new JsonItem[] {
+                checkedStatus, value
+              },
+              Type = item.GetType().AssemblyQualifiedName
+            });
+          }
+          return jsonItems;
+        }),
+        5);
     }
   }
Index: /branches/3026_IntegrationIntoSymSpace/Heuristiclab.ConfigStarter/Heuristiclab.ConfigStarter.csproj
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/Heuristiclab.ConfigStarter/Heuristiclab.ConfigStarter.csproj	(revision 17371)
+++ /branches/3026_IntegrationIntoSymSpace/Heuristiclab.ConfigStarter/Heuristiclab.ConfigStarter.csproj	(revision 17371)
@@ -0,0 +1,130 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{E0FB3F94-8A4D-4F37-8D8F-E757B1E6E99A}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Heuristiclab.ConfigStarter</RootNamespace>
+    <AssemblyName>Heuristiclab.ConfigStarter</AssemblyName>
+    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <Deterministic>true</Deterministic>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>..\bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <Prefer32Bit>false</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup>
+    <SignAssembly>true</SignAssembly>
+  </PropertyGroup>
+  <PropertyGroup>
+    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
+  </PropertyGroup>
+  <PropertyGroup>
+    <StartupObject />
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="HEAL.Attic">
+      <HintPath>..\bin\HEAL.Attic.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Plugin.cs.frame" />
+    <Compile Include="Plugin.cs" />
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\HeuristicLab.Algorithms.GeneticAlgorithm\3.3\HeuristicLab.Algorithms.GeneticAlgorithm-3.3.csproj">
+      <Project>{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}</Project>
+      <Name>HeuristicLab.Algorithms.GeneticAlgorithm-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
+      <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
+      <Name>HeuristicLab.Common-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
+      <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>
+      <Name>HeuristicLab.Core-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">
+      <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project>
+      <Name>HeuristicLab.Data-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.JsonInterface.App\HeuristicLab.JsonInterface.App.csproj">
+      <Project>{039d995f-1aa5-4461-92b3-b466f612d998}</Project>
+      <Name>HeuristicLab.JsonInterface.App</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.JsonInterface\HeuristicLab.JsonInterface.csproj">
+      <Project>{0e3aab5e-f152-44e0-a054-4d9a83ecee08}</Project>
+      <Name>HeuristicLab.JsonInterface</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj">
+      <Project>{14AB8D24-25BC-400C-A846-4627AA945192}</Project>
+      <Name>HeuristicLab.Optimization-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
+      <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">
+      <Project>{3540E29E-4793-49E7-8EE2-FEA7F61C3994}</Project>
+      <Name>HeuristicLab.Problems.Instances-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Problems.TravelingSalesman\3.3\HeuristicLab.Problems.TravelingSalesman-3.3.csproj">
+      <Project>{D767C38D-8014-46B0-9A32-03A3AECCE34A}</Project>
+      <Name>HeuristicLab.Problems.TravelingSalesman-3.3</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="HeuristicLab.snk" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <PropertyGroup>
+    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd
+
+</PreBuildEvent>
+  </PropertyGroup>
+</Project>
Index: /branches/3026_IntegrationIntoSymSpace/Heuristiclab.ConfigStarter/Plugin.cs.frame
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/Heuristiclab.ConfigStarter/Plugin.cs.frame	(revision 17371)
+++ /branches/3026_IntegrationIntoSymSpace/Heuristiclab.ConfigStarter/Plugin.cs.frame	(revision 17371)
@@ -0,0 +1,45 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.IO;
+using System.Text;
+using System.Threading.Tasks;
+using HeuristicLab.PluginInfrastructure;
+
+namespace Heuristiclab.ConfigStarter
+{
+  [Plugin("HeuristicLab.ConfigStarter", "3.3.16.17184")]
+  [PluginFile("HeuristicLab.ConfigStarter.dll", PluginFileType.Assembly)]
+  [PluginDependency("HeuristicLab.Attic", "1.0")]
+  public class HeuristicLabConfigStarterPlugin : PluginBase {
+  }
+
+  [Application("ConfigStarter", "HeuristicLab ConfigStarter 3.3.16.17184")]
+  internal class HeuristicLabConfigStarterApplication : ApplicationBase {
+    public override void Run(ICommandLineArgument[] args) {
+      Console.WriteLine("it works");
+      File.WriteAllText(@"C:\Workspace\test.txt", "it works!");
+    }
+  }
+}
Index: /branches/3026_IntegrationIntoSymSpace/Heuristiclab.ConfigStarter/Program.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/Heuristiclab.ConfigStarter/Program.cs	(revision 17371)
+++ /branches/3026_IntegrationIntoSymSpace/Heuristiclab.ConfigStarter/Program.cs	(revision 17371)
@@ -0,0 +1,54 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using HeuristicLab.PluginInfrastructure;
+using HeuristicLab.JsonInterface.App;
+using HeuristicLab.Algorithms.GeneticAlgorithm;
+using HeuristicLab.Problems.TravelingSalesman;
+using HeuristicLab.JsonInterface;
+using System.IO;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Regression;
+using HeuristicLab.PluginInfrastructure.Manager;
+
+namespace Heuristiclab.ConfigStarter {
+  public class Program {
+    public static void Main(string[] args) {
+
+      try {
+        string pluginPath = Path.GetFullPath(Directory.GetCurrentDirectory());
+        var pluginManager = new PluginManager(pluginPath);
+        pluginManager.DiscoverAndCheckPlugins();
+        
+      } catch(Exception e) {
+        Console.WriteLine(e);
+      }
+
+      HEAL.Attic.Mapper.StaticCache.UpdateRegisteredTypes();
+
+
+      HeuristicLabJsonInterfaceAppApplication app = new HeuristicLabJsonInterfaceAppApplication();
+
+      GeneticAlgorithm alg = new GeneticAlgorithm();
+      TravelingSalesmanProblem tsp = new TravelingSalesmanProblem();
+      tsp.Coordinates[0, 0] = 123;
+
+
+      SymbolicRegressionSingleObjectiveProblem prop = new SymbolicRegressionSingleObjectiveProblem();
+      
+      alg.Problem = prop;
+
+      File.WriteAllText(@"C:\Workspace\Template.json", JCGenerator.GenerateTemplate(alg));
+
+      /*
+      List<ICommandLineArgument> arguments = new List<ICommandLineArgument>();
+      arguments.Add(new StartArgument("JsonInterface"));
+      arguments.Add(new OpenArgument(@"C:\Workspace\Template.json"));
+      arguments.Add(new OpenArgument(@"C:\Workspace\ConfigProto1.json"));
+
+      app.Run(arguments.ToArray());
+      */
+    }
+  }
+}
Index: /branches/3026_IntegrationIntoSymSpace/Heuristiclab.ConfigStarter/Properties/AssemblyInfo.cs
===================================================================
--- /branches/3026_IntegrationIntoSymSpace/Heuristiclab.ConfigStarter/Properties/AssemblyInfo.cs	(revision 17371)
+++ /branches/3026_IntegrationIntoSymSpace/Heuristiclab.ConfigStarter/Properties/AssemblyInfo.cs	(revision 17371)
@@ -0,0 +1,36 @@
+﻿using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Heuristiclab.ConfigStarter")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Heuristiclab.ConfigStarter")]
+[assembly: AssemblyCopyright("Copyright ©  2019")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components.  If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("e0fb3f94-8a4d-4f37-8d8f-e757b1e6e99a")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
