Index: branches/TSNE/HeuristicLab.Algorithms.DataAnalysis/3.4/HeuristicLab.Algorithms.DataAnalysis-3.4.csproj
===================================================================
--- branches/TSNE/HeuristicLab.Algorithms.DataAnalysis/3.4/HeuristicLab.Algorithms.DataAnalysis-3.4.csproj	(revision 14785)
+++ branches/TSNE/HeuristicLab.Algorithms.DataAnalysis/3.4/HeuristicLab.Algorithms.DataAnalysis-3.4.csproj	(revision 14787)
@@ -331,6 +331,4 @@
     <Compile Include="Interfaces\ISupportVectorMachineSolution.cs" />
     <Compile Include="Interfaces\IDataAnalysisAlgorithm.cs" />
-    <Compile Include="Interfaces\TSNEInterfaces\ICell.cs" />
-    <Compile Include="Interfaces\TSNEInterfaces\IDataPoint.cs" />
     <Compile Include="Interfaces\TSNEInterfaces\IDistance.cs" />
     <Compile Include="Interfaces\TSNEInterfaces\ISpacePartitioningTree.cs" />
@@ -418,5 +416,4 @@
     </Compile>
     <Compile Include="TimeSeries\AutoregressiveModeling.cs" />
-    <Compile Include="TSNE\Cell.cs" />
     <Compile Include="TSNE\Distances\DistanceBase.cs" />
     <Compile Include="TSNE\Distances\EuclideanDistance.cs" />
Index: branches/TSNE/HeuristicLab.Algorithms.DataAnalysis/3.4/Interfaces/TSNEInterfaces/ICell.cs
===================================================================
--- branches/TSNE/HeuristicLab.Algorithms.DataAnalysis/3.4/Interfaces/TSNEInterfaces/ICell.cs	(revision 14785)
+++ 	(revision )
@@ -1,32 +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 HeuristicLab.Common;
-
-namespace HeuristicLab.Algorithms.DataAnalysis {
-  public interface ICell : IDeepCloneable {
-    double GetCorner(int d);
-    double GetWidth(int d);
-    void SetCorner(int d, double val);
-    void SetWidth(int d, double val);
-    bool ContainsPoint(double[] point);
-  }
-}
Index: branches/TSNE/HeuristicLab.Algorithms.DataAnalysis/3.4/Interfaces/TSNEInterfaces/IDataPoint.cs
===================================================================
--- branches/TSNE/HeuristicLab.Algorithms.DataAnalysis/3.4/Interfaces/TSNEInterfaces/IDataPoint.cs	(revision 14785)
+++ 	(revision )
@@ -1,30 +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 HeuristicLab.Common;
-
-namespace HeuristicLab.Algorithms.DataAnalysis {
-  public interface IDataPoint<out T> : IDeepCloneable {
-    int Index { get; }
-    T X { get; }
-
-  }
-}
Index: branches/TSNE/HeuristicLab.Algorithms.DataAnalysis/3.4/TSNE/Cell.cs
===================================================================
--- branches/TSNE/HeuristicLab.Algorithms.DataAnalysis/3.4/TSNE/Cell.cs	(revision 14785)
+++ 	(revision )
@@ -1,114 +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/>.
- */
-
-//Code is based on an implementation from Laurens van der Maaten
-
-/*
-*
-* Copyright (c) 2014, Laurens van der Maaten (Delft University of Technology)
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-* 1. Redistributions of source code must retain the above copyright
-*    notice, this list of conditions and the following disclaimer.
-* 2. Redistributions in binary form must reproduce the above copyright
-*    notice, this list of conditions and the following disclaimer in the
-*    documentation and/or other materials provided with the distribution.
-* 3. All advertising materials mentioning features or use of this software
-*    must display the following acknowledgement:
-*    This product includes software developed by the Delft University of Technology.
-* 4. Neither the name of the Delft University of Technology nor the names of
-*    its contributors may be used to endorse or promote products derived from
-*    this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY LAURENS VAN DER MAATEN ''AS IS'' AND ANY EXPRESS
-* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-* EVENT SHALL LAURENS VAN DER MAATEN BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
-* OF SUCH DAMAGE.
-*
-*/
-#endregion
-
-using System.Collections.Generic;
-using System.Linq;
-using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Algorithms.DataAnalysis {
-  [StorableClass]
-  public class Cell : DeepCloneable, ICell {
-    #region properties
-    [Storable]
-    private uint dimension;
-    [Storable]
-    private double[] corner;
-    [Storable]
-    private double[] width;
-    #endregion
-
-    #region HLConstructors & Cloning
-    [StorableConstructor]
-    protected Cell(bool deserializing) { }
-    protected Cell(Cell original, Cloner cloner) : base(original, cloner) {
-      dimension = original.dimension;
-      corner = original.corner.Select(x => x).ToArray();
-      width = original.width.Select(x => x).ToArray();
-    }
-    public override IDeepCloneable Clone(Cloner cloner) { return new Cell(this, cloner); }
-
-    public Cell(uint inpDimension) {
-      dimension = inpDimension;
-      corner = new double[dimension];
-      width = new double[dimension];
-    }
-    public Cell(uint inpDimension, IEnumerable<double> inpCorner, IEnumerable<double> inpWidth) {
-      dimension = inpDimension;
-      corner = inpCorner.Select(x => x).ToArray();
-      width = inpWidth.Select(x => x).ToArray();
-    }
-    #endregion
-
-    public double GetCorner(int d) {
-      return corner[d];
-    }
-    public double GetWidth(int d) {
-      return width[d];
-    }
-    public void SetCorner(int d, double val) {
-      corner[d] = val;
-    }
-    public void SetWidth(int d, double val) {
-      width[d] = val;
-    }
-
-    public bool ContainsPoint(double[] point) {
-      for (var d = 0; d < dimension; d++)
-        if (corner[d] - width[d] > point[d] || corner[d] + width[d] < point[d]) return false;
-      return true;
-    }
-  }
-}
Index: branches/TSNE/HeuristicLab.Algorithms.DataAnalysis/3.4/TSNE/SpacePartitioningTree.cs
===================================================================
--- branches/TSNE/HeuristicLab.Algorithms.DataAnalysis/3.4/TSNE/SpacePartitioningTree.cs	(revision 14785)
+++ branches/TSNE/HeuristicLab.Algorithms.DataAnalysis/3.4/TSNE/SpacePartitioningTree.cs	(revision 14787)
@@ -58,5 +58,4 @@
 using System.Linq;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
 namespace HeuristicLab.Algorithms.DataAnalysis {
@@ -64,62 +63,26 @@
   /// Space partitioning tree (SPTree)
   /// </summary>
-  [StorableClass]
-  public class SpacePartitioningTree : DeepCloneable, ISpacePartitioningTree {
+  public class SpacePartitioningTree : ISpacePartitioningTree {
     private const uint QT_NODE_CAPACITY = 1;
 
-    #region properties
-    [Storable]
     private double[] buff;
-    [Storable]
     private SpacePartitioningTree parent;
-    [Storable]
     private int dimension;
-    [Storable]
     private bool isLeaf;
-    [Storable]
     private uint size;
-    [Storable]
     private uint cumulativeSize;
 
     // Axis-aligned bounding box stored as a center with half-dimensions to represent the boundaries of this quad tree
-    [Storable]
-    private ICell boundary;
+    private Cell boundary;
 
     // Indices in this space-partitioning tree node, corresponding center-of-mass, and list of all children
-    [Storable]
-    public double[,] Data { private get; set; }
-    [Storable]
+    public double[,] Data { private get; set; } // TODO public setter, private getter?
+
     private double[] centerOfMass;
-    [Storable]
-    private int[] index = new int[QT_NODE_CAPACITY];
+    private readonly int[] index = new int[QT_NODE_CAPACITY];
 
     // Children
     private SpacePartitioningTree[] children;
-    [Storable]
     private uint noChildren;
-    #endregion
-
-    #region HLConstructors & Cloning
-    [StorableConstructor]
-    protected SpacePartitioningTree(bool deserializing) { }
-    protected SpacePartitioningTree(SpacePartitioningTree original, Cloner cloner)
-      : base(original, cloner) {
-      buff = original.buff.Select(x => x).ToArray();
-      parent = cloner.Clone(original.parent);
-      dimension = original.dimension;
-      isLeaf = original.isLeaf;
-      size = original.size;
-      cumulativeSize = original.cumulativeSize;
-      boundary = cloner.Clone(original.boundary);
-      if (original.Data != null) {
-        Data = new double[size, dimension];
-        Buffer.BlockCopy(original.Data, 0, Data, 0, original.Data.Length * sizeof(double));
-      }
-      centerOfMass = original.centerOfMass.Select(x => x).ToArray();
-      index = original.index.Select(x => x).ToArray();
-      children = original.children.Select(cloner.Clone).ToArray();
-      noChildren = original.noChildren;
-    }
-    public override IDeepCloneable Clone(Cloner cloner) { return new SpacePartitioningTree(this, cloner); }
 
     public SpacePartitioningTree(double[,] inpData) {
@@ -151,5 +114,4 @@
       Init(parent, inpData, impCorner, impWith);
     }
-    #endregion
 
     public ISpacePartitioningTree GetParent() {
@@ -327,4 +289,34 @@
     #endregion
 
+
+    private class Cell  {
+      private readonly uint dimension;
+      private readonly double[] corner;
+      private readonly double[] width;
+
+      public Cell(uint inpDimension) {
+        dimension = inpDimension;
+        corner = new double[dimension];
+        width = new double[dimension];
+      }
+
+      public double GetCorner(int d) {
+        return corner[d];
+      }
+      public double GetWidth(int d) {
+        return width[d];
+      }
+      public void SetCorner(int d, double val) {
+        corner[d] = val;
+      }
+      public void SetWidth(int d, double val) {
+        width[d] = val;
+      }
+      public bool ContainsPoint(double[] point) {
+        for (var d = 0; d < dimension; d++)
+          if (corner[d] - width[d] > point[d] || corner[d] + width[d] < point[d]) return false;
+        return true;
+      }
+    }
   }
 }
Index: branches/TSNE/HeuristicLab.Algorithms.DataAnalysis/3.4/TSNE/VantagePointTree.cs
===================================================================
--- branches/TSNE/HeuristicLab.Algorithms.DataAnalysis/3.4/TSNE/VantagePointTree.cs	(revision 14785)
+++ branches/TSNE/HeuristicLab.Algorithms.DataAnalysis/3.4/TSNE/VantagePointTree.cs	(revision 14787)
@@ -54,11 +54,7 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
 using System.Linq;
 using HeuristicLab.Collections;
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.Random;
 
@@ -72,5 +68,4 @@
   /// </summary>
   /// <typeparam name="T"></typeparam>
-  [StorableClass]
   public class VantagePointTree<T> : IVantagePointTree<T> {
     #region properties
