Index: branches/HeuristicLab.RegressionSolutionGradientView/HeuristicLab.Algorithms.DataAnalysis/3.4/GaussianProcess/GaussianProcessRegressionSolution.cs
===================================================================
--- branches/HeuristicLab.RegressionSolutionGradientView/HeuristicLab.Algorithms.DataAnalysis/3.4/GaussianProcess/GaussianProcessRegressionSolution.cs	(revision 13823)
+++ branches/HeuristicLab.RegressionSolutionGradientView/HeuristicLab.Algorithms.DataAnalysis/3.4/GaussianProcess/GaussianProcessRegressionSolution.cs	(revision 13824)
@@ -20,6 +20,4 @@
 #endregion
 
-using System.Collections.Generic;
-using System.Linq;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -33,6 +31,5 @@
   [Item("GaussianProcessRegressionSolution", "Represents a Gaussian process solution for a regression problem which can be visualized in the GUI.")]
   [StorableClass]
-  public sealed class GaussianProcessRegressionSolution : RegressionSolution, IGaussianProcessSolution, IConfidenceBoundRegressionSolution {
-    private new readonly Dictionary<int, double> evaluationCache;
+  public sealed class GaussianProcessRegressionSolution : ConfidenceBoundRegressionSolution, IGaussianProcessSolution {
 
     public new IGaussianProcessModel Model {
@@ -44,51 +41,13 @@
     private GaussianProcessRegressionSolution(bool deserializing)
       : base(deserializing) {
-      evaluationCache = new Dictionary<int, double>();
-
     }
     private GaussianProcessRegressionSolution(GaussianProcessRegressionSolution original, Cloner cloner)
-      : base(original, cloner) {
-      evaluationCache = new Dictionary<int, double>(original.evaluationCache);
-    }
+      : base(original, cloner) { }
     public GaussianProcessRegressionSolution(IGaussianProcessModel model, IRegressionProblemData problemData)
-      : base(model, problemData) {
-
-      evaluationCache = new Dictionary<int, double>(problemData.Dataset.Rows);
-    }
+      : base(model, problemData) { }
 
     public override IDeepCloneable Clone(Cloner cloner) {
       return new GaussianProcessRegressionSolution(this, cloner);
     }
-
-    public IEnumerable<double> EstimatedVariances {
-      get { return GetEstimatedVariances(Enumerable.Range(0, ProblemData.Dataset.Rows)); }
-    }
-    public IEnumerable<double> EstimatedTrainingVariances {
-      get { return GetEstimatedVariances(ProblemData.TrainingIndices); }
-    }
-    public IEnumerable<double> EstimatedTestVariances {
-      get { return GetEstimatedVariances(ProblemData.TestIndices); }
-    }
-
-    public IEnumerable<double> GetEstimatedVariances(IEnumerable<int> rows) {
-      var rowsToEvaluate = rows.Except(evaluationCache.Keys);
-      var rowsEnumerator = rowsToEvaluate.GetEnumerator();
-      var valuesEnumerator = Model.GetEstimatedVariances(ProblemData.Dataset, rowsToEvaluate).GetEnumerator();
-
-      while (rowsEnumerator.MoveNext() & valuesEnumerator.MoveNext()) {
-        evaluationCache.Add(rowsEnumerator.Current, valuesEnumerator.Current);
-      }
-
-      return rows.Select(row => evaluationCache[row]);
-    }
-
-    protected override void OnModelChanged() {
-      evaluationCache.Clear();
-      base.OnModelChanged();
-    }
-    protected override void OnProblemDataChanged() {
-      evaluationCache.Clear();
-      base.OnProblemDataChanged();
-    }
   }
 }
Index: branches/HeuristicLab.RegressionSolutionGradientView/HeuristicLab.Algorithms.DataAnalysis/3.4/Interfaces/IGaussianProcessSolution.cs
===================================================================
--- branches/HeuristicLab.RegressionSolutionGradientView/HeuristicLab.Algorithms.DataAnalysis/3.4/Interfaces/IGaussianProcessSolution.cs	(revision 13823)
+++ branches/HeuristicLab.RegressionSolutionGradientView/HeuristicLab.Algorithms.DataAnalysis/3.4/Interfaces/IGaussianProcessSolution.cs	(revision 13824)
@@ -26,5 +26,5 @@
   /// Interface to represent a Gaussian process solution (either regression or classification)
   /// </summary>
-  public interface IGaussianProcessSolution : IDataAnalysisSolution {
+  public interface IGaussianProcessSolution : IConfidenceBoundRegressionSolution {
     new IGaussianProcessModel Model { get; }
   }
