Index: branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/CicularKernel.cs
===================================================================
--- branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/CicularKernel.cs	(revision 14386)
+++ branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/CicularKernel.cs	(revision 14872)
@@ -30,5 +30,5 @@
   [StorableClass]
   [Item("CircularKernel", "A circular kernel function")]
-  public class CircularKernel<T> : KernelBase<T> {
+  public class CircularKernel : KernelBase {
 
     #region HLConstructors & Boilerplate
@@ -37,10 +37,10 @@
     [StorableHook(HookType.AfterDeserialization)]
     private void AfterDeserialization() { }
-    protected CircularKernel(CircularKernel<T> original, Cloner cloner) : base(original, cloner) { }
+    protected CircularKernel(CircularKernel original, Cloner cloner) : base(original, cloner) { }
     public CircularKernel() {
-      Parameters.Add(new FixedValueParameter<DoubleValue>(BetaParameterName, "The beta in the kernelfunction 2*pi*(acos(-d)-d*(1-n²)^(0.5)) where n = ||x-c|| and d = n/beta", new DoubleValue(2)));
+      Parameters.Add(new FixedValueParameter<DoubleValue>(BetaParameterName, "The beta in the kernel function 2*pi*(acos(-d)-d*(1-n²)^(0.5)) where n = ||x-c|| and d = n/beta", new DoubleValue(2)));
     }
     public override IDeepCloneable Clone(Cloner cloner) {
-      return new CircularKernel<T>(this, cloner);
+      return new CircularKernel(this, cloner);
     }
     #endregion
Index: branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/GaussianKernel.cs
===================================================================
--- branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/GaussianKernel.cs	(revision 14386)
+++ branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/GaussianKernel.cs	(revision 14872)
@@ -30,5 +30,5 @@
   [StorableClass]
   [Item("GaussianKernel", "A kernel function that uses Gaussian function")]
-  public class GaussianKernel<T> : KernelBase<T> {
+  public class GaussianKernel : KernelBase {
 
     #region HLConstructors & Boilerplate
@@ -37,10 +37,10 @@
     [StorableHook(HookType.AfterDeserialization)]
     private void AfterDeserialization() { }
-    protected GaussianKernel(GaussianKernel<T> original, Cloner cloner) : base(original, cloner) { }
+    protected GaussianKernel(GaussianKernel original, Cloner cloner) : base(original, cloner) { }
     public GaussianKernel() {
       Parameters.Add(new FixedValueParameter<DoubleValue>(BetaParameterName, "The beta in the kernelfunction exp(-||x-c||/beta²)", new DoubleValue(2)));
     }
     public override IDeepCloneable Clone(Cloner cloner) {
-      return new GaussianKernel<T>(this, cloner);
+      return new GaussianKernel(this, cloner);
     }
     #endregion
Index: branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/InverseMultiquadraticKernel .cs
===================================================================
--- branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/InverseMultiquadraticKernel .cs	(revision 14386)
+++ 	(revision )
@@ -1,58 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2016 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 HeuristicLab.Common;
-using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Algorithms.DataAnalysis {
-  [StorableClass]
-  [Item("InverseMultiquadraticKernel", "A kernel function that uses the inverse multiquadratic function")]
-  public class InverseMultiquadraticKernel<T> : KernelBase<T> {
-    #region HLConstructors & Boilerplate
-    [StorableConstructor]
-    protected InverseMultiquadraticKernel(bool deserializing) : base(deserializing) { }
-    [StorableHook(HookType.AfterDeserialization)]
-    private void AfterDeserialization() { }
-    protected InverseMultiquadraticKernel(InverseMultiquadraticKernel<T> original, Cloner cloner) : base(original, cloner) { }
-    public InverseMultiquadraticKernel() {
-      Parameters.Add(new FixedValueParameter<DoubleValue>(BetaParameterName, "The beta in the kernelfunction sqrt(1+||x-c||^2/beta)", new DoubleValue(2)));
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new InverseMultiquadraticKernel<T>(this, cloner);
-    }
-    #endregion
-
-    protected override double Get(double norm) {
-      if (Math.Abs(Beta) < double.Epsilon) return 0;
-      return 1 / Math.Sqrt(1 + norm * norm / Beta);
-    }
-
-    protected override double GetGradient(double norm) {
-      if (Math.Abs(Beta) < double.Epsilon) return double.NaN;
-      norm *= norm;
-      return norm / (2 * Beta * Beta * Math.Pow((norm + Beta) / Beta, 1.5));
-    }
-  }
-}
Index: branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/InverseMultiquadraticKernel.cs
===================================================================
--- branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/InverseMultiquadraticKernel.cs	(revision 14872)
+++ branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/InverseMultiquadraticKernel.cs	(revision 14872)
@@ -0,0 +1,58 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 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 HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Algorithms.DataAnalysis {
+  [StorableClass]
+  [Item("InverseMultiquadraticKernel", "A kernel function that uses the inverse multiquadratic function")]
+  public class InverseMultiquadraticKernel : KernelBase {
+    #region HLConstructors & Boilerplate
+    [StorableConstructor]
+    protected InverseMultiquadraticKernel(bool deserializing) : base(deserializing) { }
+    [StorableHook(HookType.AfterDeserialization)]
+    private void AfterDeserialization() { }
+    protected InverseMultiquadraticKernel(InverseMultiquadraticKernel original, Cloner cloner) : base(original, cloner) { }
+    public InverseMultiquadraticKernel() {
+      Parameters.Add(new FixedValueParameter<DoubleValue>(BetaParameterName, "The beta in the kernel function 1 / sqrt(1+||x-c||^2/beta)", new DoubleValue(2)));
+    }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new InverseMultiquadraticKernel(this, cloner);
+    }
+    #endregion
+
+    protected override double Get(double norm) {
+      if (Math.Abs(Beta) < double.Epsilon) return 0;
+      return 1 / Math.Sqrt(1 + norm * norm / Beta);
+    }
+
+    protected override double GetGradient(double norm) {
+      if (Math.Abs(Beta) < double.Epsilon) return double.NaN;
+      norm *= norm;
+      return norm / (2 * Beta * Beta * Math.Pow((norm + Beta) / Beta, 1.5));
+    }
+  }
+}
Index: branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/KernelBase.cs
===================================================================
--- branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/KernelBase.cs	(revision 14386)
+++ branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/KernelBase.cs	(revision 14872)
@@ -31,5 +31,5 @@
 namespace HeuristicLab.Algorithms.DataAnalysis {
   [StorableClass]
-  public abstract class KernelBase<T> : ParameterizedNamedItem, IKernelFunction<T> {
+  public abstract class KernelBase : ParameterizedNamedItem, ICovarianceFunction {
 
     #region Parameternames
@@ -38,11 +38,9 @@
     #endregion
     #region Parameterproperties
-    public ValueParameter<IDistance<T>> DistanceParameter
-    {
-      get { return Parameters[DistanceParameterName] as ValueParameter<IDistance<T>>; }
+    public ValueParameter<IDistance> DistanceParameter {
+      get { return Parameters[DistanceParameterName] as ValueParameter<IDistance>; }
     }
 
-    public IFixedValueParameter<DoubleValue> BetaParameter
-    {
+    public IFixedValueParameter<DoubleValue> BetaParameter {
       get { return Parameters[BetaParameterName] as FixedValueParameter<DoubleValue>; }
     }
@@ -50,11 +48,9 @@
     #endregion
     #region Properties
-    public IDistance<T> Distance
-    {
+    public IDistance Distance {
       get { return DistanceParameter.Value; }
     }
 
-    public double Beta
-    {
+    public double Beta {
       get { return BetaParameter.Value.Value; }
     }
@@ -62,5 +58,4 @@
     #endregion
 
-    #region HLConstructors & Boilerplate
     [StorableConstructor]
     protected KernelBase(bool deserializing) : base(deserializing) { }
@@ -68,14 +63,13 @@
     private void AfterDeserialization() { }
 
-    protected KernelBase(KernelBase<T> original, Cloner cloner)
+    protected KernelBase(KernelBase original, Cloner cloner)
       : base(original, cloner) { }
 
     protected KernelBase() {
-      Parameters.Add(new ValueParameter<IDistance<T>>(DistanceParameterName, "The distance function used for kernel calculation"));
-      DistanceParameter.Value = new EuclidianDistance() as IDistance<T>;
+      Parameters.Add(new ValueParameter<IDistance>(DistanceParameterName, "The distance function used for kernel calculation"));
+      DistanceParameter.Value = new EuclideanDistance();
     }
-    #endregion
 
-    public double Get(T a, T b) {
+    public double Get(object a, object b) {
       return Get(Distance.Get(a, b));
     }
@@ -93,5 +87,5 @@
     public ParameterizedCovarianceFunction GetParameterizedCovarianceFunction(double[] p, int[] columnIndices) {
       if (p == null || p.Length != 1) throw new ArgumentException("Illegal parametrization");
-      var myClone = (KernelBase<T>)Clone(new Cloner());
+      var myClone = (KernelBase)Clone(new Cloner());
       myClone.BetaParameter.Value.Value = p[0];
       var cov = new ParameterizedCovarianceFunction {
@@ -107,5 +101,5 @@
     protected double GetNorm(double[,] x, double[,] xt, int i, int j, int[] columnIndices) {
       var dist = Distance as IDistance<IEnumerable<double>>;
-      if (dist == null) throw new ArgumentException("The Distance needs to apply to double-Vectors");
+      if (dist == null) throw new ArgumentException("The distance needs to apply to double vectors");
       var r1 = new IndexedEnumerable(x, i, columnIndices);
       var r2 = new IndexedEnumerable(xt, j, columnIndices);
@@ -142,13 +136,10 @@
       }
 
-      public double Current
-      {
+      public double Current {
         get { return data[row, column.Current]; }
       }
 
-      object IEnumerator.Current
-      {
-        get
-        {
+      object IEnumerator.Current {
+        get {
           return data[row, column.Current];
         }
Index: branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/LaplacianKernel.cs
===================================================================
--- branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/LaplacianKernel.cs	(revision 14386)
+++ branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/LaplacianKernel.cs	(revision 14872)
@@ -29,20 +29,17 @@
 namespace HeuristicLab.Algorithms.DataAnalysis {
   [StorableClass]
-  [Item("LaplacianKernel", "A kernel function that uses an exponential function.\nIt is equvalent to the Gaussiankernel but less suseptible to improper values of beta")]
-  public class LaplacianKernel<T> : KernelBase<T> {
-
-    #region HLConstructors & Boilerplate
+  [Item("LaplacianKernel", "A kernel function that uses an exponential function.\nIt is equvalent to the Gaussian kernel but less susceptible to improper values of beta")]
+  public class LaplacianKernel : KernelBase {
     [StorableConstructor]
     protected LaplacianKernel(bool deserializing) : base(deserializing) { }
     [StorableHook(HookType.AfterDeserialization)]
     private void AfterDeserialization() { }
-    protected LaplacianKernel(LaplacianKernel<T> original, Cloner cloner) : base(original, cloner) { }
+    protected LaplacianKernel(LaplacianKernel original, Cloner cloner) : base(original, cloner) { }
     public LaplacianKernel() {
-      Parameters.Add(new FixedValueParameter<DoubleValue>(BetaParameterName, "The beta in the kernelfunction exp(-||x-c||/beta)", new DoubleValue(2)));
+      Parameters.Add(new FixedValueParameter<DoubleValue>(BetaParameterName, "The beta in the kernel function exp(-||x-c||/beta)", new DoubleValue(2)));
     }
     public override IDeepCloneable Clone(Cloner cloner) {
-      return new LaplacianKernel<T>(this, cloner);
+      return new LaplacianKernel(this, cloner);
     }
-    #endregion
 
     protected override double Get(double norm) {
Index: branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/MultiquadraticKernel.cs
===================================================================
--- branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/MultiquadraticKernel.cs	(revision 14386)
+++ branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/MultiquadraticKernel.cs	(revision 14872)
@@ -30,5 +30,5 @@
   [StorableClass]
   [Item("MultiquadraticKernel", "A kernel function that uses the multiquadratic function")]
-  public class MultiquadraticKernel<T> : KernelBase<T> {
+  public class MultiquadraticKernel : KernelBase {
 
     #region HLConstructors & Boilerplate
@@ -37,12 +37,12 @@
     [StorableHook(HookType.AfterDeserialization)]
     private void AfterDeserialization() { }
-    protected MultiquadraticKernel(MultiquadraticKernel<T> original, Cloner cloner)
+    protected MultiquadraticKernel(MultiquadraticKernel original, Cloner cloner)
                 : base(original, cloner) { }
 
     public MultiquadraticKernel() {
-      Parameters.Add(new FixedValueParameter<DoubleValue>(BetaParameterName, "The beta in the kernelfunction sqrt(1+||x-c||²/beta)", new DoubleValue(2)));
+      Parameters.Add(new FixedValueParameter<DoubleValue>(BetaParameterName, "The beta in the kernel function sqrt(1+||x-c||²/beta)", new DoubleValue(2)));
     }
     public override IDeepCloneable Clone(Cloner cloner) {
-      return new MultiquadraticKernel<T>(this, cloner);
+      return new MultiquadraticKernel(this, cloner);
     }
     #endregion
Index: branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/PolysplineKernel.cs
===================================================================
--- branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/PolysplineKernel.cs	(revision 14386)
+++ branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/PolysplineKernel.cs	(revision 14872)
@@ -30,5 +30,5 @@
   [StorableClass]
   [Item("PolysplineKernel", "A kernel function that uses the multiquadratic function")]
-  public class PolysplineKernel<T> : KernelBase<T> {
+  public class PolysplineKernel : KernelBase {
 
     #region HLConstructors & Boilerplate
@@ -37,5 +37,5 @@
     [StorableHook(HookType.AfterDeserialization)]
     private void AfterDeserialization() { }
-    protected PolysplineKernel(PolysplineKernel<T> original, Cloner cloner)
+    protected PolysplineKernel(PolysplineKernel original, Cloner cloner)
                 : base(original, cloner) { }
     public PolysplineKernel() {
@@ -43,5 +43,5 @@
     }
     public override IDeepCloneable Clone(Cloner cloner) {
-      return new PolysplineKernel<T>(this, cloner);
+      return new PolysplineKernel(this, cloner);
     }
     #endregion
Index: branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/ThinPlatePolysplineKernel.cs
===================================================================
--- branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/ThinPlatePolysplineKernel.cs	(revision 14386)
+++ branches/RBFRegression/HeuristicLab.Algorithms.DataAnalysis/3.4/RadialBasisFunctions/KernelFunctions/ThinPlatePolysplineKernel.cs	(revision 14872)
@@ -30,5 +30,5 @@
   [StorableClass]
   [Item("ThinPlatePolysplineKernel", "A kernel function that uses the ThinPlatePolyspline function")]
-  public class ThinPlatePolysplineKernel<T> : KernelBase<T> {
+  public class ThinPlatePolysplineKernel : KernelBase {
     #region HLConstructors & Boilerplate
     [StorableConstructor]
@@ -36,10 +36,10 @@
     [StorableHook(HookType.AfterDeserialization)]
     private void AfterDeserialization() { }
-    protected ThinPlatePolysplineKernel(ThinPlatePolysplineKernel<T> original, Cloner cloner) : base(original, cloner) { }
+    protected ThinPlatePolysplineKernel(ThinPlatePolysplineKernel original, Cloner cloner) : base(original, cloner) { }
     public ThinPlatePolysplineKernel() {
       Parameters.Add(new FixedValueParameter<DoubleValue>(BetaParameterName, "The Beta in the kernelfunction ||x-c||^(2*Beta)*log(||x-c||^Beta)", new DoubleValue(1)));
     }
     public override IDeepCloneable Clone(Cloner cloner) {
-      return new ThinPlatePolysplineKernel<T>(this, cloner);
+      return new ThinPlatePolysplineKernel(this, cloner);
     }
     #endregion
