Index: src/Potentials/Makefile.am
===================================================================
--- src/Potentials/Makefile.am	(revision 3723f0805f3ddd3c3d5a1197506c46757b6e80c5)
+++ src/Potentials/Makefile.am	(revision c5e63a4efcf5739f8379980891648d24490fe8c4)
@@ -5,6 +5,8 @@
   Potentials/CompoundPotential.cpp \
   Potentials/ParticleTypeCheckers.cpp \
+  Potentials/PotentialDeserializer.cpp \
   Potentials/PotentialFactory.cpp \
   Potentials/PotentialRegistry.cpp \
+  Potentials/PotentialSerializer.cpp \
   Potentials/SerializablePotential.cpp \
   Potentials/Specifics/ConstantPotential.cpp \
@@ -21,6 +23,8 @@
   Potentials/helpers.hpp \
   Potentials/ParticleTypeCheckers.hpp \
+  Potentials/PotentialDeserializer.hpp \
   Potentials/PotentialFactory.hpp \
   Potentials/PotentialRegistry.hpp \
+  Potentials/PotentialSerializer.hpp \
   Potentials/SerializablePotential.hpp \
   Potentials/Specifics/PotentialTypes.hpp \
Index: src/Potentials/PotentialDeserializer.cpp
===================================================================
--- src/Potentials/PotentialDeserializer.cpp	(revision c5e63a4efcf5739f8379980891648d24490fe8c4)
+++ src/Potentials/PotentialDeserializer.cpp	(revision c5e63a4efcf5739f8379980891648d24490fe8c4)
@@ -0,0 +1,74 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2013 Frederik Heber. All rights reserved.
+ * Please see the COPYING file or "Copyright notice" in builder.cpp for details.
+ *
+ *
+ *   This file is part of MoleCuilder.
+ *
+ *    MoleCuilder 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 2 of the License, or
+ *    (at your option) any later version.
+ *
+ *    MoleCuilder 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 MoleCuilder.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * PotentialDeserializer.cpp
+ *
+ *  Created on: 09.05.2013
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include "PotentialDeserializer.hpp"
+
+#include <iostream>
+#include <sstream>
+#include <string>
+
+#include "CodePatterns/Log.hpp"
+
+#include "Potentials/PotentialFactory.hpp"
+#include "Potentials/PotentialRegistry.hpp"
+
+void PotentialDeserializer::operator()()
+{
+  std::string linestring;
+  while (serialized.good()) {
+    getline(serialized, linestring);
+    const std::string whitespace(" \t");
+    const size_t strBegin = linestring.find_first_not_of(whitespace);
+    const size_t colonpos = linestring.find(":");
+    if ((strBegin != std::string::npos) && (colonpos != std::string::npos)) {
+      // get potential's token
+      const std::string token = linestring.substr(strBegin, colonpos);
+      std::stringstream potentialstream(linestring);
+
+      // instantiate type
+      EmpiricalPotential *potential =
+          PotentialFactory::getInstance().createInstance(
+              token, potentialstream);
+
+      // and register
+      PotentialRegistry::getInstance().registerInstance(potential);
+
+    } else {
+      ELOG(2, "Line '" << linestring << "' contains no potential.");
+    }
+  }
+}
Index: src/Potentials/PotentialDeserializer.hpp
===================================================================
--- src/Potentials/PotentialDeserializer.hpp	(revision c5e63a4efcf5739f8379980891648d24490fe8c4)
+++ src/Potentials/PotentialDeserializer.hpp	(revision c5e63a4efcf5739f8379980891648d24490fe8c4)
@@ -0,0 +1,43 @@
+/*
+ * PotentialDeserializer.hpp
+ *
+ *  Created on: 09.05.2013
+ *      Author: heber
+ */
+
+#ifndef POTENTIALDESERIALIZER_HPP_
+#define POTENTIALDESERIALIZER_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <iosfwd>
+
+class PotentialDeserializer
+{
+public:
+  /** Constructor for class PotentialDeserializer.
+   *
+   */
+  PotentialDeserializer(std::istream &_serialized) :
+    serialized(_serialized)
+  {}
+
+  /** Destructor for class PotentialDeserializer.
+   *
+   */
+  ~PotentialDeserializer()
+  {}
+
+  /** Parses the internally stored input stream for potentials.
+   *
+   */
+  void operator()();
+
+private:
+  std::istream &serialized;
+};
+
+#endif /* POTENTIALDESERIALIZER_HPP_ */
Index: src/Potentials/PotentialSerializer.cpp
===================================================================
--- src/Potentials/PotentialSerializer.cpp	(revision c5e63a4efcf5739f8379980891648d24490fe8c4)
+++ src/Potentials/PotentialSerializer.cpp	(revision c5e63a4efcf5739f8379980891648d24490fe8c4)
@@ -0,0 +1,59 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2013 Frederik Heber. All rights reserved.
+ * Please see the COPYING file or "Copyright notice" in builder.cpp for details.
+ *
+ *
+ *   This file is part of MoleCuilder.
+ *
+ *    MoleCuilder 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 2 of the License, or
+ *    (at your option) any later version.
+ *
+ *    MoleCuilder 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 MoleCuilder.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * PotentialSerializer.cpp
+ *
+ *  Created on: 09.05.2013
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include "PotentialSerializer.hpp"
+
+#include <iostream>
+
+#include "CodePatterns/Log.hpp"
+
+#include "Potentials/PotentialRegistry.hpp"
+#include "Potentials/SerializablePotential.hpp"
+
+
+void PotentialSerializer::operator()()
+{
+  PotentialRegistry &instance = PotentialRegistry::getInstance();
+  for (PotentialRegistry::const_iterator iter = instance.getBeginIter();
+      iter != instance.getEndIter(); ++iter)
+  {
+    const SerializablePotential * const potential = iter->second;
+    LOG(1, "INFO: Now serializing potential " << potential->getToken() << ".");
+    potential->stream_to(to_serialize);
+    to_serialize << std::endl;
+  }
+}
Index: src/Potentials/PotentialSerializer.hpp
===================================================================
--- src/Potentials/PotentialSerializer.hpp	(revision c5e63a4efcf5739f8379980891648d24490fe8c4)
+++ src/Potentials/PotentialSerializer.hpp	(revision c5e63a4efcf5739f8379980891648d24490fe8c4)
@@ -0,0 +1,44 @@
+/*
+ * PotentialSerializer.hpp
+ *
+ *  Created on: 09.05.2013
+ *      Author: heber
+ */
+
+#ifndef POTENTIALSERIALIZER_HPP_
+#define POTENTIALSERIALIZER_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <iosfwd>
+
+class PotentialSerializer
+{
+public:
+  /** Constructor for class PotentialSerializer.
+   *
+   */
+  PotentialSerializer(std::ostream &_to_serialize) :
+    to_serialize(_to_serialize)
+  {}
+
+  /** Destructor for class PotentialSerializer.
+   *
+   */
+  ~PotentialSerializer()
+  {}
+
+  /** Function to stream all potentials present in PotentialRegistry to
+   * internally stored stream.
+   *
+   */
+  void operator()();
+
+private:
+  std::ostream &to_serialize;
+};
+
+#endif /* POTENTIALSERIALIZER_HPP_ */
Index: src/Potentials/SerializablePotential.cpp
===================================================================
--- src/Potentials/SerializablePotential.cpp	(revision 3723f0805f3ddd3c3d5a1197506c46757b6e80c5)
+++ src/Potentials/SerializablePotential.cpp	(revision c5e63a4efcf5739f8379980891648d24490fe8c4)
@@ -106,5 +106,5 @@
     throw SerializablePotentialException();
 
-  // create copy of current parameters, hence line may contain not all required
+  // create copy of current parameters as line may contain not all required
   SerializablePotential::parameters_t params(getParameters());
 
