Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/OKBClient.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/OKBClient.cs	(revision 4566)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/OKBClient.cs	(revision 4587)
@@ -171,56 +171,8 @@
       }
     }
-    public bool Store(long algorithmId, long problemId, Run run) {
-      try {
-        IAlgorithm algorithm = run.Algorithm;
-        IProblem problem = algorithm.Problem;
-
-        ItemCollection<AlgorithmParameter> algorithmParameters = GetAlgorithmParameters(algorithmId);
-        AddAlgorithmParamters(algorithmId, algorithmParameters, algorithm, "");
-        ItemCollection<ProblemParameter> problemParameters = GetProblemParameters(problemId);
-        AddProblemParamters(problemId, problemParameters, problem, "");
-
-        return true;
-      }
-      catch (Exception ex) {
-        ErrorHandling.ShowErrorDialog("Store run failed.", ex);
-        return false;
-      }
-    }
-
-    private void AddAlgorithmParamters(long algorithmId, ItemCollection<AlgorithmParameter> parameters, IParameterizedItem item, string prefix) {
-      foreach (IValueParameter param in item.Parameters.OfType<IValueParameter>()) {
-        if (param.GetsCollected && (param.Value != null) && (parameters.FirstOrDefault(x => x.Name == param.Name) == null)) {
-          AlgorithmParameter p = new AlgorithmParameter();
-          p.Name = prefix + param.Name;
-          p.Alias = prefix + param.Name;
-          p.Description = param.Description;
-          p.AlgorithmId = algorithmId;
-          p.DataTypeId = GetDataType(param.DataType).Id;
-          p.Store();
-          parameters.Add(p);
-        }
-        if (param.Value is IParameterizedItem)
-          AddAlgorithmParamters(algorithmId, parameters, (IParameterizedItem)param.Value, (string.IsNullOrEmpty(prefix) ? param.Name : prefix + param.Name) + ".");
-      }
-    }
-    private void AddProblemParamters(long problemId, ItemCollection<ProblemParameter> parameters, IParameterizedItem item, string prefix) {
-      foreach (IValueParameter param in item.Parameters.OfType<IValueParameter>()) {
-        if (param.GetsCollected && (param.Value != null) && (parameters.FirstOrDefault(x => x.Name == param.Name) == null)) {
-          ProblemParameter p = new ProblemParameter();
-          p.Name = prefix + param.Name;
-          p.Alias = prefix + param.Name;
-          p.Description = param.Description;
-          p.ProblemId = problemId;
-          p.DataTypeId = GetDataType(param.DataType).Id;
-          p.Store();
-          parameters.Add(p);
-        }
-        if (param.Value is IParameterizedItem)
-          AddProblemParamters(problemId, parameters, (IParameterizedItem)param.Value, (string.IsNullOrEmpty(prefix) ? param.Name : prefix + param.Name) + ".");
-      }
-    }
-
-    public DataType GetDataType(Type type) {
+    #endregion
+
+    #region DataType Methods
+    public DataType ConvertToDataType(Type type) {
       DataType dataType = DataTypes.FirstOrDefault(x => x.Name == type.AssemblyQualifiedName);
       if (dataType == null) {
@@ -245,5 +197,4 @@
       return dataType;
     }
-
     #endregion
 
@@ -359,4 +310,57 @@
         ErrorHandling.ShowErrorDialog("Refresh problem parameters failed.", ex);
         return null;
+      }
+    }
+    #endregion
+
+    #region Run Methods
+    public bool AddRun(long algorithmId, long problemId, Run run) {
+      try {
+        IAlgorithm algorithm = run.Algorithm;
+        IProblem problem = algorithm.Problem;
+
+        ItemCollection<AlgorithmParameter> algorithmParameters = GetAlgorithmParameters(algorithmId);
+        AddAlgorithmParamters(algorithmId, algorithmParameters, algorithm, "");
+        ItemCollection<ProblemParameter> problemParameters = GetProblemParameters(problemId);
+        AddProblemParamters(problemId, problemParameters, problem, "");
+
+        return true;
+      }
+      catch (Exception ex) {
+        ErrorHandling.ShowErrorDialog("Store run failed.", ex);
+        return false;
+      }
+    }
+
+    private void AddAlgorithmParamters(long algorithmId, ItemCollection<AlgorithmParameter> parameters, IParameterizedItem item, string prefix) {
+      foreach (IValueParameter param in item.Parameters.OfType<IValueParameter>()) {
+        if (param.GetsCollected && (param.Value != null) && (parameters.FirstOrDefault(x => x.Name == prefix + param.Name) == null)) {
+          AlgorithmParameter p = new AlgorithmParameter();
+          p.Name = prefix + param.Name;
+          p.Alias = prefix + param.Name;
+          p.Description = param.Description;
+          p.AlgorithmId = algorithmId;
+          p.DataTypeId = ConvertToDataType(param.DataType).Id;
+          p.Store();
+          parameters.Add(p);
+        }
+        if (param.Value is IParameterizedItem)
+          AddAlgorithmParamters(algorithmId, parameters, (IParameterizedItem)param.Value, (string.IsNullOrEmpty(prefix) ? param.Name : prefix + param.Name) + ".");
+      }
+    }
+    private void AddProblemParamters(long problemId, ItemCollection<ProblemParameter> parameters, IParameterizedItem item, string prefix) {
+      foreach (IValueParameter param in item.Parameters.OfType<IValueParameter>()) {
+        if (param.GetsCollected && (param.Value != null) && (parameters.FirstOrDefault(x => x.Name == prefix + param.Name) == null)) {
+          ProblemParameter p = new ProblemParameter();
+          p.Name = prefix + param.Name;
+          p.Alias = prefix + param.Name;
+          p.Description = param.Description;
+          p.ProblemId = problemId;
+          p.DataTypeId = ConvertToDataType(param.DataType).Id;
+          p.Store();
+          parameters.Add(p);
+        }
+        if (param.Value is IParameterizedItem)
+          AddProblemParamters(problemId, parameters, (IParameterizedItem)param.Value, (string.IsNullOrEmpty(prefix) ? param.Name : prefix + param.Name) + ".");
       }
     }
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/OKBExperiment.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/OKBExperiment.cs	(revision 4566)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/OKBExperiment.cs	(revision 4587)
@@ -321,5 +321,5 @@
       try {
         foreach (Run run in e.Items)
-          OKBClient.Instance.Store(AlgorithmId, ProblemId, run);
+          OKBClient.Instance.AddRun(AlgorithmId, ProblemId, run);
       }
       catch (Exception ex) {
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/OKBServiceClient.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/OKBServiceClient.cs	(revision 4566)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/OKBServiceClient.cs	(revision 4587)
@@ -10,5 +10,4 @@
 
 namespace HeuristicLab.Clients.OKB {
-  using System.Runtime.Serialization;
 
 
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/AlgorithmDataView.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/AlgorithmDataView.cs	(revision 4566)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/AlgorithmDataView.cs	(revision 4587)
@@ -157,13 +157,7 @@
             if (Content == null) Content = new AlgorithmData { AlgorithmId = AlgorithmId };
             viewHost.Content = (IContent)dialog.TypeSelector.CreateInstanceOfSelectedType();
-            DataType dataType = OKBClient.Instance.DataTypes.FirstOrDefault(d => d.Name == viewHost.Content.GetType().AssemblyQualifiedName);
-            if (dataType == null) {
-              dataType = new DataType { Name = viewHost.Content.GetType().AssemblyQualifiedName, SqlName = "varbinary" };
-              dataType.PlatformId = OKBClient.Instance.Platforms.FirstOrDefault(p => p.Name == "HeuristicLab 3.3").Id;
-              dataType.Store();
-              OKBClient.Instance.DataTypes.Add(dataType);
-              dataTypeComboBoxValues = OKBClient.Instance.DataTypes.OrderBy(d => d.Name).ToList();
-              dataTypeComboBox.DataSource = dataTypeComboBoxValues;
-            }
+            DataType dataType = OKBClient.Instance.ConvertToDataType(viewHost.Content.GetType());
+            dataTypeComboBoxValues = OKBClient.Instance.DataTypes.OrderBy(d => d.Name).ToList();
+            dataTypeComboBox.DataSource = dataTypeComboBoxValues;
             dataTypeComboBox.SelectedItem = dataType;
             fileTextBox.Text = "-";
@@ -190,13 +184,7 @@
             viewHost.Content = algorithm;
             noViewAvailableLabel.Visible = false;
-            DataType dataType = OKBClient.Instance.DataTypes.FirstOrDefault(d => d.Name == viewHost.Content.GetType().AssemblyQualifiedName);
-            if (dataType == null) {
-              dataType = new DataType { Name = viewHost.Content.GetType().AssemblyQualifiedName, SqlName = "varbinary" };
-              dataType.PlatformId = OKBClient.Instance.Platforms.FirstOrDefault(p => p.Name == "HeuristicLab 3.3").Id;
-              dataType.Store();
-              OKBClient.Instance.DataTypes.Add(dataType);
-              dataTypeComboBoxValues = OKBClient.Instance.DataTypes.OrderBy(d => d.Name).ToList();
-              dataTypeComboBox.DataSource = dataTypeComboBoxValues;
-            }
+            DataType dataType = OKBClient.Instance.ConvertToDataType(viewHost.Content.GetType());
+            dataTypeComboBoxValues = OKBClient.Instance.DataTypes.OrderBy(d => d.Name).ToList();
+            dataTypeComboBox.DataSource = dataTypeComboBoxValues;
             dataTypeComboBox.SelectedItem = dataType;
           } else {
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/ProblemDataView.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/ProblemDataView.cs	(revision 4566)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/ProblemDataView.cs	(revision 4587)
@@ -156,13 +156,7 @@
             if (Content == null) Content = new ProblemData { ProblemId = ProblemId };
             viewHost.Content = (IContent)dialog.TypeSelector.CreateInstanceOfSelectedType();
-            DataType dataType = OKBClient.Instance.DataTypes.FirstOrDefault(d => d.Name == viewHost.Content.GetType().AssemblyQualifiedName);
-            if (dataType == null) {
-              dataType = new DataType { Name = viewHost.Content.GetType().AssemblyQualifiedName, SqlName = "varbinary" };
-              dataType.PlatformId = OKBClient.Instance.Platforms.FirstOrDefault(p => p.Name == "HeuristicLab 3.3").Id;
-              dataType.Store();
-              OKBClient.Instance.DataTypes.Add(dataType);
-              dataTypeComboBoxValues = OKBClient.Instance.DataTypes.OrderBy(d => d.Name).ToList();
-              dataTypeComboBox.DataSource = dataTypeComboBoxValues;
-            }
+            DataType dataType = OKBClient.Instance.ConvertToDataType(viewHost.Content.GetType());
+            dataTypeComboBoxValues = OKBClient.Instance.DataTypes.OrderBy(d => d.Name).ToList();
+            dataTypeComboBox.DataSource = dataTypeComboBoxValues;
             dataTypeComboBox.SelectedItem = dataType;
             fileTextBox.Text = "-";
@@ -189,13 +183,7 @@
             viewHost.Content = problem;
             noViewAvailableLabel.Visible = false;
-            DataType dataType = OKBClient.Instance.DataTypes.FirstOrDefault(d => d.Name == viewHost.Content.GetType().AssemblyQualifiedName);
-            if (dataType == null) {
-              dataType = new DataType { Name = viewHost.Content.GetType().AssemblyQualifiedName, SqlName = "varbinary" };
-              dataType.PlatformId = OKBClient.Instance.Platforms.FirstOrDefault(p => p.Name == "HeuristicLab 3.3").Id;
-              dataType.Store();
-              OKBClient.Instance.DataTypes.Add(dataType);
-              dataTypeComboBoxValues = OKBClient.Instance.DataTypes.OrderBy(d => d.Name).ToList();
-              dataTypeComboBox.DataSource = dataTypeComboBoxValues;
-            }
+            DataType dataType = OKBClient.Instance.ConvertToDataType(viewHost.Content.GetType());
+            dataTypeComboBoxValues = OKBClient.Instance.DataTypes.OrderBy(d => d.Name).ToList();
+            dataTypeComboBox.DataSource = dataTypeComboBoxValues;
             dataTypeComboBox.SelectedItem = dataType;
           } else {
