Index: branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tag.cs
===================================================================
--- branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tag.cs	(revision 6232)
+++ branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tag.cs	(revision 6702)
@@ -27,5 +27,5 @@
   /// between composite serializers and the core.
   /// </summary>  
-  public class Tag {
+  public sealed class Tag {
 
     /// <summary>
@@ -33,5 +33,5 @@
     /// </summary>
     /// <value>The name.</value>
-    public string Name { get; private set; }
+    public readonly string Name;
 
     /// <summary>
@@ -39,5 +39,5 @@
     /// </summary>
     /// <value>The value.</value>
-    public object Value { get; set; }
+    public readonly object Value;
 
     /// <summary>
Index: branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/BeginToken.cs
===================================================================
--- branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/BeginToken.cs	(revision 6232)
+++ branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/BeginToken.cs	(revision 6702)
@@ -21,4 +21,5 @@
 
 
+using HeuristicLab.Persistence.Interfaces;
 namespace HeuristicLab.Persistence.Core.Tokens {
 
@@ -27,5 +28,20 @@
   /// Marks the beginning of a composite element.
   /// </summary>
-  public class BeginToken : CompositeTokenBase {
+  public sealed class BeginToken : ISerializationToken {
+
+    /// <summary>
+    /// The type's id.
+    /// </summary>
+    public readonly int TypeId;
+
+    /// <summary>
+    /// The object's id for references in case it is a reference type.
+    /// </summary>
+    public readonly int? Id;
+
+    /// <summary>
+    /// The token's name.
+    /// </summary>
+    public readonly string Name;
 
     /// <summary>
@@ -35,5 +51,9 @@
     /// <param name="typeId">The type id.</param>
     /// <param name="id">The object id.</param>
-    public BeginToken(string name, int typeId, int? id) : base(name, typeId, id) { }
+    public BeginToken(string name, int typeId, int? id) {
+      Name = name;
+      TypeId = typeId;
+      Id = id;
+    }
   }
 
Index: branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/CompositeTokenBase.cs
===================================================================
--- branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/CompositeTokenBase.cs	(revision 6232)
+++ 	(revision )
@@ -1,55 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2011 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
-
-
-namespace HeuristicLab.Persistence.Core.Tokens {
-
-  /// <summary>
-  /// Common base class of <c>BeginToken</c> and <c>EndToken</c>
-  /// that surround a composite element.
-  /// </summary>
-  public abstract class CompositeTokenBase : SerializationTokenBase {
-
-    /// <summary>
-    /// The type's id.
-    /// </summary>
-    public readonly int TypeId;
-
-
-    /// <summary>
-    /// The object's id for references in case it is a reference type.
-    /// </summary>
-    public readonly int? Id;
-
-    /// <summary>
-    /// Initializes a new instance of the <see cref="CompositeTokenBase"/> class.
-    /// </summary>
-    /// <param name="name">The name.</param>
-    /// <param name="typeId">The type id.</param>
-    /// <param name="id">The object id.</param>
-    public CompositeTokenBase(string name, int typeId, int? id)
-      : base(name) {
-      TypeId = typeId;
-      Id = id;
-    }
-  }
-
-}
Index: branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/EndToken.cs
===================================================================
--- branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/EndToken.cs	(revision 6232)
+++ branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/EndToken.cs	(revision 6702)
@@ -21,4 +21,5 @@
 
 
+using HeuristicLab.Persistence.Interfaces;
 namespace HeuristicLab.Persistence.Core.Tokens {
 
@@ -26,14 +27,5 @@
   /// Marks the end of a composite element.
   /// </summary>
-  public class EndToken : CompositeTokenBase {
-
-    /// <summary>
-    /// Initializes a new instance of the <see cref="EndToken"/> class.
-    /// </summary>
-    /// <param name="name">The name.</param>
-    /// <param name="typeId">The type id.</param>
-    /// <param name="id">The object id.</param>
-    public EndToken(string name, int typeId, int? id) : base(name, typeId, id) { }
-  }
+  public sealed class EndToken : ISerializationToken { }
 
 }
Index: branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/MetaInfoBeginToken.cs
===================================================================
--- branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/MetaInfoBeginToken.cs	(revision 6232)
+++ branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/MetaInfoBeginToken.cs	(revision 6702)
@@ -27,5 +27,5 @@
   /// Start of meta information.
   /// </summary>
-  public class MetaInfoBeginToken : ISerializationToken { }
+  public sealed class MetaInfoBeginToken : ISerializationToken { }
 
 }
Index: branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/MetaInfoEndToken.cs
===================================================================
--- branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/MetaInfoEndToken.cs	(revision 6232)
+++ branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/MetaInfoEndToken.cs	(revision 6702)
@@ -27,5 +27,5 @@
   /// End of meta info.
   /// </summary>
-  public class MetaInfoEndToken : ISerializationToken { }
+  public sealed class MetaInfoEndToken : ISerializationToken { }
 
 }
Index: branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/NulLReferenceToken.cs
===================================================================
--- branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/NulLReferenceToken.cs	(revision 6232)
+++ branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/NulLReferenceToken.cs	(revision 6702)
@@ -21,4 +21,5 @@
 
 
+using HeuristicLab.Persistence.Interfaces;
 namespace HeuristicLab.Persistence.Core.Tokens {
 
@@ -26,5 +27,10 @@
   /// Describes a reference to <c>null</c>.
   /// </summary>
-  public class NullReferenceToken : SerializationTokenBase {
+  public sealed class NullReferenceToken : ISerializationToken {
+
+    /// <summary>
+    /// The token's name.
+    /// </summary>
+    public readonly string Name;
 
     /// <summary>
@@ -32,5 +38,7 @@
     /// </summary>
     /// <param name="name">The token name.</param>
-    public NullReferenceToken(string name) : base(name) { }
+    public NullReferenceToken(string name) {
+      Name = name;
+    }
   }
 
Index: branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/PrimitiveToken.cs
===================================================================
--- branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/PrimitiveToken.cs	(revision 6232)
+++ branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/PrimitiveToken.cs	(revision 6702)
@@ -27,5 +27,10 @@
   /// Encapsulated the serialization of a single primitive value.
   /// </summary>
-  public class PrimitiveToken : SerializationTokenBase {
+  public sealed class PrimitiveToken : ISerializationToken {
+
+    /// <summary>
+    /// The token's name.
+    /// </summary>
+    public readonly string Name;
 
     /// <summary>
@@ -51,6 +56,6 @@
     /// <param name="id">The onbject's id.</param>
     /// <param name="serialData">The serialized data.</param>
-    public PrimitiveToken(string name, int typeId, int? id, ISerialData serialData)
-      : base(name) {
+    public PrimitiveToken(string name, int typeId, int? id, ISerialData serialData) {
+      Name = name;
       TypeId = typeId;
       Id = id;
Index: branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/ReferenceToken.cs
===================================================================
--- branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/ReferenceToken.cs	(revision 6232)
+++ branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/ReferenceToken.cs	(revision 6702)
@@ -21,11 +21,17 @@
 
 
+using HeuristicLab.Persistence.Interfaces;
 namespace HeuristicLab.Persistence.Core.Tokens {
-
 
   /// <summary>
   /// References a previously used token (composite or primitive).
   /// </summary>
-  public class ReferenceToken : SerializationTokenBase {
+  public sealed class ReferenceToken : ISerializationToken {
+
+    /// <summary>
+    /// The token's name.
+    /// </summary>
+    public readonly string Name;
+
     /// <summary>
     /// The refereced object's id.
@@ -38,6 +44,6 @@
     /// <param name="name">The name.</param>
     /// <param name="id">The referenced object's id.</param>
-    public ReferenceToken(string name, int id)
-      : base(name) {
+    public ReferenceToken(string name, int id) {
+      Name = name;
       Id = id;
     }
Index: branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/SerializationTokenBase.cs
===================================================================
--- branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/Core/Tokens/SerializationTokenBase.cs	(revision 6232)
+++ 	(revision )
@@ -1,63 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2011 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.Reflection;
-using System.Text;
-using HeuristicLab.Persistence.Interfaces;
-
-namespace HeuristicLab.Persistence.Core.Tokens {
-
-  /// <summary>
-  /// Common base class for all serialization tokens.
-  /// </summary>
-  public abstract class SerializationTokenBase : ISerializationToken {
-
-    /// <summary>
-    /// The token's name.
-    /// </summary>
-    public readonly string Name;
-
-    /// <summary>
-    /// Initializes a new instance of the <see cref="SerializationTokenBase"/> class.
-    /// </summary>
-    /// <param name="name">The token name.</param>
-    public SerializationTokenBase(string name) {
-      Name = name;
-    }
-
-    /// <summary>
-    /// Returns a <see cref="System.String"/> that represents this instance.
-    /// </summary>
-    /// <returns>
-    /// A <see cref="System.String"/> that represents this instance.
-    /// </returns>
-    public override string ToString() {
-      StringBuilder sb = new StringBuilder();
-      sb.Append(this.GetType().Name).Append('(');
-      foreach (FieldInfo fi in this.GetType().GetFields()) {
-        sb.Append(fi.Name).Append('=').Append(fi.GetValue(this)).Append(", ");
-      }
-      sb.Append(')');
-      return sb.ToString();
-    }
-  }
-
-}
Index: branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/HeuristicLab.Persistence-3.3.csproj
===================================================================
--- branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/HeuristicLab.Persistence-3.3.csproj	(revision 6232)
+++ branches/PersistenceSpeedUp/HeuristicLab.Persistence/3.3/HeuristicLab.Persistence-3.3.csproj	(revision 6702)
@@ -227,6 +227,4 @@
     <Compile Include="Core\Tokens\MetaInfoEndToken.cs" />
     <Compile Include="Interfaces\ISerializationToken.cs" />
-    <Compile Include="Core\Tokens\SerializationTokenBase.cs" />
-    <Compile Include="Core\Tokens\CompositeTokenBase.cs" />
     <Compile Include="Core\Tokens\BeginToken.cs" />
     <Compile Include="Core\Tokens\EndToken.cs" />
