Index: /trunk/sources/HeuristicLab.Persistence/3.3/Core/PersistenceException.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Core/PersistenceException.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Core/PersistenceException.cs	(revision 1659)
@@ -3,7 +3,9 @@
 using HeuristicLab.Persistence.Interfaces;
 using HeuristicLab.Persistence.Core.Tokens;
+using HeuristicLab.Persistence.Default.Decomposers.Storable;
 
 namespace HeuristicLab.Persistence.Core {
 
+  [Serializable]  
   public class PersistenceException : Exception {
     public PersistenceException() : base() { }
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/DebugString.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/DebugString.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/DebugString.cs	(revision 1659)
@@ -6,12 +6,17 @@
 using HeuristicLab.Persistence.Core;
 using HeuristicLab.Persistence.Core.Tokens;
+using HeuristicLab.Persistence.Default.Decomposers.Storable;
 
 namespace HeuristicLab.Persistence.Default.DebugString {
+  
+  public class DebugString : ISerialData {
 
-  public class DebugString : ISerialData {
+    [Storable]
     public string Data { get; set; }
+
     public DebugString(string s) {
       Data = s;
     }
+
   }
 
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/DebugStringFormat.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/DebugStringFormat.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/DebugStringFormat.cs	(revision 1659)
@@ -6,9 +6,11 @@
 using HeuristicLab.Persistence.Core;
 using HeuristicLab.Persistence.Core.Tokens;
+using HeuristicLab.Persistence.Default.Decomposers.Storable;
 
 namespace HeuristicLab.Persistence.Default.DebugString {
 
+  [EmptyStorableClass]
   public class DebugStringFormat : FormatBase<DebugString> {
-    public override string Name { get { return "ViewOnly"; } }
+    public override string Name { get { return "DebugString"; } }
   }
 
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Bool2DebugStringFormatter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Bool2DebugStringFormatter.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Bool2DebugStringFormatter.cs	(revision 1659)
@@ -11,5 +11,5 @@
 
   [EmptyStorableClass]
-  public class Bool2DebugStringFormatter : ValueType2DebugStringFormatterBase<bool> { }
+  public class Bool2DebugStringFormatter : DebugStringFormatterBase<bool> { }
 
 }
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Byte2DebugStringFormatter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Byte2DebugStringFormatter.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Byte2DebugStringFormatter.cs	(revision 1659)
@@ -11,5 +11,5 @@
 
   [EmptyStorableClass]
-  public class Byte2DebugStringFormatter : ValueType2DebugStringFormatterBase<byte> { }
+  public class Byte2DebugStringFormatter : DebugStringFormatterBase<byte> { }
 
 }
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Char2DebugStringFormatter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Char2DebugStringFormatter.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Char2DebugStringFormatter.cs	(revision 1659)
@@ -11,5 +11,5 @@
 
   [EmptyStorableClass]
-  public class Char2DebugStringFormatter : ValueType2DebugStringFormatterBase<char> { }
+  public class Char2DebugStringFormatter : DebugStringFormatterBase<char> { }
 
 }
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/DateTime2DebugStringFormatter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/DateTime2DebugStringFormatter.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/DateTime2DebugStringFormatter.cs	(revision 1659)
@@ -11,5 +11,5 @@
 
   [EmptyStorableClass]
-  public class DateTime2DebugStringFormatter : ValueType2DebugStringFormatterBase<DateTime> { }
+  public class DateTime2DebugStringFormatter : DebugStringFormatterBase<DateTime> { }
 
 }
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Doubld2DebugStringFormatter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Doubld2DebugStringFormatter.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Doubld2DebugStringFormatter.cs	(revision 1659)
@@ -11,5 +11,5 @@
 
   [EmptyStorableClass]
-  public class Double2DebugStringFormatter : ValueType2DebugStringFormatterBase<double> { }
+  public class Double2DebugStringFormatter : DebugStringFormatterBase<double> { }
 
 }
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Float2DebugStringFormatter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Float2DebugStringFormatter.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Float2DebugStringFormatter.cs	(revision 1659)
@@ -11,5 +11,5 @@
 
   [EmptyStorableClass]
-  public class Float2DebugStringFormatter : ValueType2DebugStringFormatterBase<float> { }
+  public class Float2DebugStringFormatter : DebugStringFormatterBase<float> { }
 
 }
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Int2DebugStringFormatter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Int2DebugStringFormatter.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Int2DebugStringFormatter.cs	(revision 1659)
@@ -11,5 +11,5 @@
 
   [EmptyStorableClass]
-  public class Int2DebugStringFormatter : ValueType2DebugStringFormatterBase<int> { }
+  public class Int2DebugStringFormatter : DebugStringFormatterBase<int> { }
 
 }
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Long2DebugStringFormatter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Long2DebugStringFormatter.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Long2DebugStringFormatter.cs	(revision 1659)
@@ -11,5 +11,5 @@
 
   [EmptyStorableClass]
-  public class Long2DebugStringFormatter : ValueType2DebugStringFormatterBase<long> { }
+  public class Long2DebugStringFormatter : DebugStringFormatterBase<long> { }
 
 }
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/SByte2DebugStringFormatter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/SByte2DebugStringFormatter.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/SByte2DebugStringFormatter.cs	(revision 1659)
@@ -11,5 +11,5 @@
 
   [EmptyStorableClass]
-  public class SByte2DebugStringFormatter : ValueType2DebugStringFormatterBase<sbyte> { }
+  public class SByte2DebugStringFormatter : DebugStringFormatterBase<sbyte> { }
 
 }
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Short2DebugStringFormatter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Short2DebugStringFormatter.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Short2DebugStringFormatter.cs	(revision 1659)
@@ -11,5 +11,5 @@
 
   [EmptyStorableClass]
-  public class Short2DebugStringFormatter : ValueType2DebugStringFormatterBase<short> { }
+  public class Short2DebugStringFormatter : DebugStringFormatterBase<short> { }
 
 }
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/String2DebugStringFormatter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/String2DebugStringFormatter.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/String2DebugStringFormatter.cs	(revision 1659)
@@ -11,5 +11,5 @@
 
   [EmptyStorableClass]
-  public class String2DebugStringFormatter : ValueType2DebugStringFormatterBase<string> { }
+  public class String2DebugStringFormatter : DebugStringFormatterBase<string> { }
 
 }
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Type2DebugStringFormatter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Type2DebugStringFormatter.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/Type2DebugStringFormatter.cs	(revision 1659)
@@ -11,5 +11,5 @@
 
   [EmptyStorableClass]
-  public class Type2DebugStringFormatter : ValueType2DebugStringFormatterBase<Type> { }
+  public class Type2DebugStringFormatter : DebugStringFormatterBase<Type> { }
 
 }
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/UInt2DebugStringFormatter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/UInt2DebugStringFormatter.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/UInt2DebugStringFormatter.cs	(revision 1659)
@@ -11,5 +11,5 @@
 
   [EmptyStorableClass]
-  public class UInt2DebugStringFormatter : ValueType2DebugStringFormatterBase<uint> { }
+  public class UInt2DebugStringFormatter : DebugStringFormatterBase<uint> { }
 
 }
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/ULong2DebugStringFormatter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/ULong2DebugStringFormatter.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/ULong2DebugStringFormatter.cs	(revision 1659)
@@ -11,5 +11,5 @@
 
   [EmptyStorableClass]
-  public class ULong2DebugStringFormatter : ValueType2DebugStringFormatterBase<ulong> { }
+  public class ULong2DebugStringFormatter : DebugStringFormatterBase<ulong> { }
 
 }
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/UShort2DebugStringFormatter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/UShort2DebugStringFormatter.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/UShort2DebugStringFormatter.cs	(revision 1659)
@@ -11,5 +11,5 @@
 
   [EmptyStorableClass]
-  public class UShort2DebugStringFormatter : ValueType2DebugStringFormatterBase<ushort> { }
+  public class UShort2DebugStringFormatter : DebugStringFormatterBase<ushort> { }
 
 }
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/ValueType2DebugStringFormatterBase.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/ValueType2DebugStringFormatterBase.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/Formatters/ValueType2DebugStringFormatterBase.cs	(revision 1659)
@@ -9,5 +9,5 @@
 namespace HeuristicLab.Persistence.Default.DebugString.Formatters {
 
-  public abstract class ValueType2DebugStringFormatterBase<T> : FormatterBase<T, DebugString> {
+  public abstract class DebugStringFormatterBase<T> : FormatterBase<T, DebugString> {
     public override DebugString Format(T o) { return new DebugString(o.ToString()); }
     public override T Parse(DebugString s) {
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/CompactXmlFormatterBase.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/CompactXmlFormatterBase.cs	(revision 1659)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/CompactXmlFormatterBase.cs	(revision 1659)
@@ -0,0 +1,9 @@
+﻿using HeuristicLab.Persistence.Interfaces;
+using HeuristicLab.Persistence.Core;
+using HeuristicLab.Persistence.Default.Decomposers.Storable;
+
+namespace HeuristicLab.Persistence.Default.Xml.Compact {
+
+  public abstract class CompactXmlFormatterBase<T> : XmlFormatterBase<T> { }
+
+}
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberArray2XmlFormatterBase.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberArray2XmlFormatterBase.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberArray2XmlFormatterBase.cs	(revision 1659)
@@ -7,5 +7,5 @@
 namespace HeuristicLab.Persistence.Default.Xml.Compact {
 
-  public abstract class NumberArray2XmlFormatterBase<T> : FormatterBase<T, XmlString> where T : class {
+  public abstract class NumberArray2XmlFormatterBase<T> : CompactXmlFormatterBase<T> where T : class {
 
     protected virtual string Separator { get { return ";"; } }
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberEnumeration2XmlFormatterBase.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberEnumeration2XmlFormatterBase.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberEnumeration2XmlFormatterBase.cs	(revision 1659)
@@ -7,5 +7,5 @@
 namespace HeuristicLab.Persistence.Default.Xml.Compact {
 
-  public abstract class NumberEnumeration2XmlFormatterBase<T> : FormatterBase<T, XmlString> where T : IEnumerable {
+  public abstract class NumberEnumeration2XmlFormatterBase<T> : CompactXmlFormatterBase<T> where T : IEnumerable {
 
     protected virtual string Separator { get { return ";"; } }
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/DateTime2XmlFormatter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/DateTime2XmlFormatter.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/DateTime2XmlFormatter.cs	(revision 1659)
@@ -7,5 +7,5 @@
 
   [EmptyStorableClass]
-  public class DateTime2XmlFormatter : FormatterBase<DateTime, XmlString> {
+  public class DateTime2XmlFormatter : PrimitiveXmlFormatterBase<DateTime> {
 
     public override XmlString Format(DateTime dt) {
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/DecimalNumber2XmlFormatterBase.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/DecimalNumber2XmlFormatterBase.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/DecimalNumber2XmlFormatterBase.cs	(revision 1659)
@@ -7,5 +7,5 @@
 namespace HeuristicLab.Persistence.Default.Xml.Primitive {
 
-  public abstract class DecimalNumber2XmlFormatterBase<T> : FormatterBase<T, XmlString> {
+  public abstract class DecimalNumber2XmlFormatterBase<T> : PrimitiveXmlFormatterBase<T> {
 
     private static MethodInfo ToStringMethod = typeof(T)
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/PrimitiveXmlFormatterBase.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/PrimitiveXmlFormatterBase.cs	(revision 1659)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/PrimitiveXmlFormatterBase.cs	(revision 1659)
@@ -0,0 +1,9 @@
+﻿using HeuristicLab.Persistence.Interfaces;
+using HeuristicLab.Persistence.Core;
+using HeuristicLab.Persistence.Default.Decomposers.Storable;
+
+namespace HeuristicLab.Persistence.Default.Xml.Primitive {
+
+  public abstract class PrimitiveXmlFormatterBase<T> : XmlFormatterBase<T> { }
+
+}
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/SByte2XmlFormatter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/SByte2XmlFormatter.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/SByte2XmlFormatter.cs	(revision 1659)
@@ -9,5 +9,5 @@
 
   [EmptyStorableClass]
-  public class Sbyte2XmlFormatter : SimpleNumber2XmlFormatterBase<sbyte> { }
+  public class SByte2XmlFormatter : SimpleNumber2XmlFormatterBase<sbyte> { }
 
 }
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/SimpleNumber2XmlFormatterBase.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/SimpleNumber2XmlFormatterBase.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/SimpleNumber2XmlFormatterBase.cs	(revision 1659)
@@ -7,5 +7,5 @@
 namespace HeuristicLab.Persistence.Default.Xml.Primitive {
 
-  public abstract class SimpleNumber2XmlFormatterBase<T> : FormatterBase<T, XmlString> {
+  public abstract class SimpleNumber2XmlFormatterBase<T> : PrimitiveXmlFormatterBase<T> {
 
     private static MethodInfo ParseMethod = typeof(T)
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/String2XmlFormatter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/String2XmlFormatter.cs	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/String2XmlFormatter.cs	(revision 1659)
@@ -10,5 +10,5 @@
 
   [EmptyStorableClass]
-  public class String2XmlFormatter : FormatterBase<string, XmlString> {
+  public class String2XmlFormatter : PrimitiveXmlFormatterBase<string> {
 
     public override XmlString Format(string s) {
Index: /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/XmlFormatterBase.cs
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/XmlFormatterBase.cs	(revision 1659)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/XmlFormatterBase.cs	(revision 1659)
@@ -0,0 +1,9 @@
+﻿using HeuristicLab.Persistence.Interfaces;
+using HeuristicLab.Persistence.Core;
+using HeuristicLab.Persistence.Default.Decomposers.Storable;
+
+namespace HeuristicLab.Persistence.Default.Xml {
+  
+  public abstract class XmlFormatterBase<T> : FormatterBase<T, XmlString> { }
+
+}
Index: /trunk/sources/HeuristicLab.Persistence/3.3/HeuristicLab.Persistence-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Persistence/3.3/HeuristicLab.Persistence-3.3.csproj	(revision 1658)
+++ /trunk/sources/HeuristicLab.Persistence/3.3/HeuristicLab.Persistence-3.3.csproj	(revision 1659)
@@ -138,4 +138,7 @@
     <Compile Include="Default\Decomposers\Storable\DataMemberAccessor.cs" />
     <Compile Include="Default\Xml\Compact\IntList2XmlFormatter.cs" />
+    <Compile Include="Default\Xml\XmlFormatterBase.cs" />
+    <Compile Include="Default\Xml\Primitive\PrimitiveXmlFormatterBase.cs" />
+    <Compile Include="Default\Xml\Compact\CompactXmlFormatterBase.cs" />
     <Compile Include="Default\Xml\Primitive\Char2XmlFormatter.cs" />
     <Compile Include="Default\Xml\XmlStringConstants.cs" />
