Index: trunk/sources/HeuristicLab.Services.OKB.DataAccess/3.3/HeuristicLab.Services.OKB.DataAccess-3.3.csproj
===================================================================
--- trunk/sources/HeuristicLab.Services.OKB.DataAccess/3.3/HeuristicLab.Services.OKB.DataAccess-3.3.csproj	(revision 4387)
+++ trunk/sources/HeuristicLab.Services.OKB.DataAccess/3.3/HeuristicLab.Services.OKB.DataAccess-3.3.csproj	(revision 4388)
@@ -126,7 +126,4 @@
       <DependentUpon>OKB.dbml</DependentUpon>
     </None>
-    <Compile Include="Extensions.cs">
-      <SubType>Code</SubType>
-    </Compile>
     <Compile Include="OKB.generated.cs">
       <DependentUpon>OKB.tt</DependentUpon>
Index: trunk/sources/HeuristicLab.Services.OKB/3.3/AdminService.cs
===================================================================
--- trunk/sources/HeuristicLab.Services.OKB/3.3/AdminService.cs	(revision 4387)
+++ trunk/sources/HeuristicLab.Services.OKB/3.3/AdminService.cs	(revision 4388)
@@ -207,4 +207,34 @@
       }
     }
+
+
+    public AlgorithmClass[] GetAlgorithmClasses() {
+      using (OKBDataContext okb = new OKBDataContext()) {
+        return okb.AlgorithmClasses.ToArray();
+      }
+    }
+
+    public void UpdateAlgorithmClass(AlgorithmClass algorithmClass) {
+      using (OKBDataContext okb = new OKBDataContext()) {
+        okb.AlgorithmClasses.Attach(algorithmClass);
+        okb.SubmitChanges();
+      }
+    }
+
+    public void UpdateAlgorithmClasses(AlgorithmClass[] algorithmClasses) {
+      using (OKBDataContext okb = new OKBDataContext()) {
+        foreach (AlgorithmClass a in algorithmClasses) {
+          AlgorithmClass original = okb.AlgorithmClasses.FirstOrDefault(x => x.Id == a.Id);
+          if (original != null) {
+            original.Name = a.Name;
+            original.Description = a.Description;
+          } else {
+            okb.AlgorithmClasses.InsertOnSubmit(a);
+          }
+        }
+        okb.SubmitChanges();
+      }
+    }
+
   }
 }
Index: trunk/sources/HeuristicLab.Services.OKB/3.3/HeuristicLab.Services.OKB-3.3.csproj
===================================================================
--- trunk/sources/HeuristicLab.Services.OKB/3.3/HeuristicLab.Services.OKB-3.3.csproj	(revision 4387)
+++ trunk/sources/HeuristicLab.Services.OKB/3.3/HeuristicLab.Services.OKB-3.3.csproj	(revision 4388)
@@ -121,21 +121,10 @@
   <ItemGroup>
     <Compile Include="AdminService.cs" />
-    <Compile Include="AttributeSelector.cs" />
     <Compile Include="DataService.cs" />
     <Compile Include="ExperimentKit.cs" />
     <Compile Include="Interfaces\IAdminService.cs" />
     <Compile Include="Interfaces\IDataService.cs" />
-    <Compile Include="Interfaces\IQueryService.cs" />
-    <Compile Include="Interfaces\IRunnerService.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Interfaces\ITableService.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="QueryService.cs" />
-    <Compile Include="RunnerService.cs">
-      <SubType>Code</SubType>
-    </Compile>
     <Compile Include="StarterKit.cs" />
-    <Compile Include="TableService.cs" />
   </ItemGroup>
   <ItemGroup>
@@ -145,8 +134,4 @@
   </ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\..\HeuristicLab.Services.OKB.AttributeSelection\3.3\HeuristicLab.Services.OKB.AttributeSelection-3.3.csproj">
-      <Project>{E80A68DB-D6E1-4395-ABF0-AFE09E4DEF8B}</Project>
-      <Name>HeuristicLab.Services.OKB.AttributeSelection-3.3</Name>
-    </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Services.OKB.DataAccess\3.3\HeuristicLab.Services.OKB.DataAccess-3.3.csproj">
       <Project>{E36BE58F-F3CE-40BB-9AB3-9F9E30AD5CCF}</Project>
Index: trunk/sources/HeuristicLab.Services.OKB/3.3/Interfaces/IAdminService.cs
===================================================================
--- trunk/sources/HeuristicLab.Services.OKB/3.3/Interfaces/IAdminService.cs	(revision 4387)
+++ trunk/sources/HeuristicLab.Services.OKB/3.3/Interfaces/IAdminService.cs	(revision 4388)
@@ -108,4 +108,17 @@
     [OperationContract]
     void UpdateCompleteProblem(Problem problem);
+
+
+
+    [OperationContract]
+    AlgorithmClass[] GetAlgorithmClasses();
+
+    [OperationContract]
+    void UpdateAlgorithmClass(AlgorithmClass algorithmClass);
+
+    [OperationContract]
+    void UpdateAlgorithmClasses(AlgorithmClass[] algorithmClasses);
+
+
   }
 }
