Index: src/Makefile.am
===================================================================
--- src/Makefile.am	(revision a80fbdfe7ff2c5de6edfc1365430bcadc4e1a6a3)
+++ src/Makefile.am	(revision cd4ccccc02ace6d5e4493281f6cfec892fadbdcf)
@@ -1,4 +1,4 @@
 SOURCE = atom.cpp bond.cpp boundary.cpp builder.cpp config.cpp element.cpp ellipsoid.cpp helpers.cpp linkedcell.cpp moleculelist.cpp molecules.cpp parser.cpp periodentafel.cpp tesselation.cpp tesselationhelpers.cpp vector.cpp verbose.cpp
-HEADER = atom.hpp bond.hpp boundary.hpp config.hpp defs.hpp ellipsoid.hpp helpers.hpp linkedcell.hpp molecules.hpp parser.hpp periodentafel.hpp stackclass.hpp tesselation.hpp tesselationhelpers.hpp vector.hpp
+HEADER = atom.hpp bond.hpp boundary.hpp config.hpp defs.hpp element.hpp ellipsoid.hpp helpers.hpp linkedcell.hpp molecules.hpp parser.hpp periodentafel.hpp stackclass.hpp tesselation.hpp tesselationhelpers.hpp vector.hpp verbose.hpp
 
 bin_PROGRAMS = molecuilder joiner analyzer
Index: src/atom.hpp
===================================================================
--- src/atom.hpp	(revision a80fbdfe7ff2c5de6edfc1365430bcadc4e1a6a3)
+++ src/atom.hpp	(revision cd4ccccc02ace6d5e4493281f6cfec892fadbdcf)
@@ -11,5 +11,13 @@
 using namespace std;
 
-#include "periodentafel.hpp"
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+
+#include <iostream>
+
+#include "element.hpp"
 #include "tesselation.hpp"
 #include "vector.hpp"
Index: src/bond.hpp
===================================================================
--- src/bond.hpp	(revision a80fbdfe7ff2c5de6edfc1365430bcadc4e1a6a3)
+++ src/bond.hpp	(revision cd4ccccc02ace6d5e4493281f6cfec892fadbdcf)
@@ -10,4 +10,10 @@
 
 using namespace std;
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
 
 #include "atom.hpp"
Index: src/config.hpp
===================================================================
--- src/config.hpp	(revision a80fbdfe7ff2c5de6edfc1365430bcadc4e1a6a3)
+++ src/config.hpp	(revision cd4ccccc02ace6d5e4493281f6cfec892fadbdcf)
@@ -10,4 +10,10 @@
 
 using namespace std;
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
 
 #include "molecules.hpp"
Index: src/element.cpp
===================================================================
--- src/element.cpp	(revision a80fbdfe7ff2c5de6edfc1365430bcadc4e1a6a3)
+++ src/element.cpp	(revision cd4ccccc02ace6d5e4493281f6cfec892fadbdcf)
@@ -5,5 +5,8 @@
  */
 
-#include "periodentafel.hpp"
+#include <iomanip>
+#include <fstream>
+
+#include "element.hpp"
 
 /************************************* Functions for class element **********************************/
Index: src/element.hpp
===================================================================
--- src/element.hpp	(revision cd4ccccc02ace6d5e4493281f6cfec892fadbdcf)
+++ src/element.hpp	(revision cd4ccccc02ace6d5e4493281f6cfec892fadbdcf)
@@ -0,0 +1,57 @@
+/*
+ * element.hpp
+ *
+ *  Created on: Aug 3, 2009
+ *      Author: heber
+ */
+
+#ifndef ELEMENT_HPP_
+#define ELEMENT_HPP_
+
+using namespace std;
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+
+#include <iostream>
+
+#include "defs.hpp"
+
+/** Chemical element.
+ * Class incorporates data for a certain chemical element to be referenced from atom class.
+ */
+class element {
+  public:
+    double mass;    //!< mass in g/mol
+    double CovalentRadius;  //!< covalent radius
+    double VanDerWaalsRadius;  //!< can-der-Waals radius
+    int Z;          //!< atomic number
+    char name[64];  //!< atom name, i.e. "Hydrogren"
+    char symbol[3]; //!< short form of the atom, i.e. "H"
+    char period[8];    //!< period: n quantum number
+    char group[8];    //!< group: l quantum number
+    char block[8];    //!< block: l quantum number
+    element *previous;  //!< previous item in list
+    element *next;  //!< next element in list
+    int *sort;      //!< sorc criteria
+    int No;         //!< number of element set on periodentafel::Output()
+    double Valence;   //!< number of valence electrons for this element
+    int NoValenceOrbitals;  //!< number of valence orbitals, used for determining bond degree in molecule::CreateConnectmatrix()
+    double HBondDistance[NDIM]; //!< distance in Angstrom of this element to hydrogen  (for single, double and triple bonds)
+    double HBondAngle[NDIM];     //!< typical angle for one, two, three bonded hydrogen (in degrees)
+
+  element();
+  ~element();
+
+  //> print element entries to screen
+  bool Output(ofstream *out) const;
+  bool Checkout(ofstream *out, const int No, const int NoOfAtoms) const;
+
+  private:
+};
+
+
+#endif /* ELEMENT_HPP_ */
Index: src/helpers.hpp
===================================================================
--- src/helpers.hpp	(revision a80fbdfe7ff2c5de6edfc1365430bcadc4e1a6a3)
+++ src/helpers.hpp	(revision cd4ccccc02ace6d5e4493281f6cfec892fadbdcf)
@@ -8,4 +8,9 @@
 
 using namespace std;
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
 
 #include <iostream>
@@ -21,9 +26,5 @@
 
 #include "defs.hpp"
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "verbose.hpp"
 
 /********************************************** helpful functions *********************************/
@@ -275,35 +276,4 @@
 };
 
-/************************************* Class Verbose & Binary *******************************/
-
-/** Verbose is an IO manipulator, that writes tabs according to \a Verbosity level.
- */
-class Verbose
-{
-  public:
-    Verbose(int value) : Verbosity(value) { }
-
-    ostream& print (ostream &ost) const;
-  private:
-    int Verbosity;
-};
-
-ostream& operator<<(ostream& ost,const Verbose& m);
-
-/** Binary is an IO manipulator, that writes 0 and 1 according to number \a Binary.
- */
-class Binary
-{
-  public:
-    Binary(int value) : BinaryNumber(value) { }
-
-    ostream& print (ostream &ost) const;
-  private:
-    int BinaryNumber;
-};
-
-ostream& operator<<(ostream& ost,const Binary& m);
-
-
 
 #endif /*HELPERS_HPP_*/
Index: src/molecules.hpp
===================================================================
--- src/molecules.hpp	(revision a80fbdfe7ff2c5de6edfc1365430bcadc4e1a6a3)
+++ src/molecules.hpp	(revision cd4ccccc02ace6d5e4493281f6cfec892fadbdcf)
@@ -27,4 +27,5 @@
 #include "atom.hpp"
 #include "bond.hpp"
+#include "element.hpp"
 #include "helpers.hpp"
 #include "linkedcell.hpp"
@@ -38,5 +39,4 @@
 class MoleculeLeafClass;
 class MoleculeListClass;
-class Verbose;
 
 /******************************** Some definitions for easier reading **********************************/
Index: src/periodentafel.cpp
===================================================================
--- src/periodentafel.cpp	(revision a80fbdfe7ff2c5de6edfc1365430bcadc4e1a6a3)
+++ src/periodentafel.cpp	(revision cd4ccccc02ace6d5e4493281f6cfec892fadbdcf)
@@ -7,5 +7,10 @@
 using namespace std;
 
+#include <iomanip>
+#include <fstream>
+
+#include "helpers.hpp"
 #include "periodentafel.hpp"
+#include "verbose.hpp"
 
 /************************************* Functions for class periodentafel ***************************/
Index: src/periodentafel.hpp
===================================================================
--- src/periodentafel.hpp	(revision a80fbdfe7ff2c5de6edfc1365430bcadc4e1a6a3)
+++ src/periodentafel.hpp	(revision cd4ccccc02ace6d5e4493281f6cfec892fadbdcf)
@@ -3,7 +3,4 @@
 
 using namespace std;
-
-#include "defs.hpp"
-#include "helpers.hpp"
 
 // include config.h
@@ -12,41 +9,11 @@
 #endif
 
+#include <iostream>
+
+#include "defs.hpp"
+#include "element.hpp"
+
 // ====================================== class definitions =========================
 
-class element;
-class periodentafel;
-
-/** Chemical element.
- * Class incorporates data for a certain chemical element to be referenced from atom class.
- */
-class element {
-  public:
-    double mass;    //!< mass in g/mol
-    double CovalentRadius;  //!< covalent radius
-    double VanDerWaalsRadius;  //!< can-der-Waals radius
-    int Z;          //!< atomic number
-    char name[64];  //!< atom name, i.e. "Hydrogren"
-    char symbol[3]; //!< short form of the atom, i.e. "H"
-    char period[8];    //!< period: n quantum number
-    char group[8];    //!< group: l quantum number
-    char block[8];    //!< block: l quantum number
-    element *previous;  //!< previous item in list
-    element *next;  //!< next element in list
-    int *sort;      //!< sorc criteria
-    int No;         //!< number of element set on periodentafel::Output()
-    double Valence;   //!< number of valence electrons for this element
-    int NoValenceOrbitals;  //!< number of valence orbitals, used for determining bond degree in molecule::CreateConnectmatrix()
-    double HBondDistance[NDIM]; //!< distance in Angstrom of this element to hydrogen  (for single, double and triple bonds)
-    double HBondAngle[NDIM];     //!< typical angle for one, two, three bonded hydrogen (in degrees)
-
-  element();
-  ~element();
-
-  //> print element entries to screen
-  bool Output(ofstream *out) const;
-  bool Checkout(ofstream *out, const int No, const int NoOfAtoms) const;
-
-  private:
-};
 
 /** Periodentafel is a list of all elements sorted by their atomic number.
Index: src/stackclass.hpp
===================================================================
--- src/stackclass.hpp	(revision a80fbdfe7ff2c5de6edfc1365430bcadc4e1a6a3)
+++ src/stackclass.hpp	(revision cd4ccccc02ace6d5e4493281f6cfec892fadbdcf)
@@ -1,4 +1,6 @@
 #ifndef STACKCLASS_HPP_
 #define STACKCLASS_HPP_
+
+#include "verbose.hpp"
 
 template <typename T> class StackClass;
Index: src/verbose.hpp
===================================================================
--- src/verbose.hpp	(revision cd4ccccc02ace6d5e4493281f6cfec892fadbdcf)
+++ src/verbose.hpp	(revision cd4ccccc02ace6d5e4493281f6cfec892fadbdcf)
@@ -0,0 +1,43 @@
+/*
+ * verbose.hpp
+ *
+ *  Created on: Aug 3, 2009
+ *      Author: heber
+ */
+
+#ifndef VERBOSE_HPP_
+#define VERBOSE_HPP_
+
+/************************************* Class Verbose & Binary *******************************/
+
+/** Verbose is an IO manipulator, that writes tabs according to \a Verbosity level.
+ */
+class Verbose
+{
+  public:
+    Verbose(int value) : Verbosity(value) { }
+
+    ostream& print (ostream &ost) const;
+  private:
+    int Verbosity;
+};
+
+ostream& operator<<(ostream& ost,const Verbose& m);
+
+/** Binary is an IO manipulator, that writes 0 and 1 according to number \a Binary.
+ */
+class Binary
+{
+  public:
+    Binary(int value) : BinaryNumber(value) { }
+
+    ostream& print (ostream &ost) const;
+  private:
+    int BinaryNumber;
+};
+
+ostream& operator<<(ostream& ost,const Binary& m);
+
+
+
+#endif /* VERBOSE_HPP_ */
