Index: src/Actions/AnalysisAction/PointCorrelationAction.cpp
===================================================================
--- src/Actions/AnalysisAction/PointCorrelationAction.cpp	(revision ff6a100b82687d82d4c2fef31bdf265072bad599)
+++ src/Actions/AnalysisAction/PointCorrelationAction.cpp	(revision 2fe9719f8a0aa9ecd805749ffe7ff7b10ebcc6fe)
@@ -98,5 +98,5 @@
   CorrelationToPointMap *correlationmap = NULL;
   for(std::vector< element *>::iterator iter = elements.begin(); iter != elements.end(); ++iter)
-    cout << "element is " << (*iter)->symbol << endl;
+    cout << "element is " << (*iter)->getSymbol() << endl;
   std::vector<molecule*> molecules = World::getInstance().getSelectedMolecules();
   if (periodic)
Index: src/Actions/AtomAction/AddAction.cpp
===================================================================
--- src/Actions/AtomAction/AddAction.cpp	(revision ff6a100b82687d82d4c2fef31bdf265072bad599)
+++ src/Actions/AtomAction/AddAction.cpp	(revision 2fe9719f8a0aa9ecd805749ffe7ff7b10ebcc6fe)
@@ -63,5 +63,5 @@
   first->type = elemental;
   first->x = position;
-  DoLog(1) && (Log() << Verbose(1) << "Adding new atom with element " << first->type->name << " at " << (first->x) << "." << endl);
+  DoLog(1) && (Log() << Verbose(1) << "Adding new atom with element " << *first->type << " at " << (first->x) << "." << endl);
   // TODO: remove when all of World's atoms are stored.
   std::vector<molecule *> molecules = World::getInstance().getAllMolecules();
Index: src/Actions/AtomAction/ChangeElementAction.cpp
===================================================================
--- src/Actions/AtomAction/ChangeElementAction.cpp	(revision ff6a100b82687d82d4c2fef31bdf265072bad599)
+++ src/Actions/AtomAction/ChangeElementAction.cpp	(revision 2fe9719f8a0aa9ecd805749ffe7ff7b10ebcc6fe)
@@ -56,5 +56,5 @@
   for (World::AtomSelectionIterator iter = World::getInstance().beginAtomSelection(); iter != World::getInstance().endAtomSelection(); ++iter) {
     first = iter->second;
-    DoLog(1) && (Log() << Verbose(1) << "Changing atom " << *first << " to element " << elemental->symbol << "." << endl);
+    DoLog(1) && (Log() << Verbose(1) << "Changing atom " << *first << " to element " << *elemental << "." << endl);
     first->type = elemental;
   }
Index: src/Formula.cpp
===================================================================
--- src/Formula.cpp	(revision ff6a100b82687d82d4c2fef31bdf265072bad599)
+++ src/Formula.cpp	(revision 2fe9719f8a0aa9ecd805749ffe7ff7b10ebcc6fe)
@@ -47,5 +47,5 @@
   for(const_iterator iter=end();iter!=begin();){
     --iter;
-    sstr << (*iter).first->symbol;
+    sstr << (*iter).first->getSymbol();
     if((*iter).second>1)
       sstr << (*iter).second;
Index: src/Parser/PcpParser.cpp
===================================================================
--- src/Parser/PcpParser.cpp	(revision ff6a100b82687d82d4c2fef31bdf265072bad599)
+++ src/Parser/PcpParser.cpp	(revision 2fe9719f8a0aa9ecd805749ffe7ff7b10ebcc6fe)
@@ -510,5 +510,5 @@
     const element * const elemental = World::getInstance().getPeriode()->FindElement(iter->first);
     ZtoIndexMap.insert( pair<int,int> (iter->first, counter) );
-    *file << "Ion_Type" << counter++ << "\t" << iter->second << "\t" << elemental->Z << "\t1.0\t3\t3\t" << fixed << setprecision(11) << showpoint << elemental->mass << "\t" << elemental->name << "\t" << elemental->symbol <<endl;
+    *file << "Ion_Type" << counter++ << "\t" << iter->second << "\t" << elemental->Z << "\t1.0\t3\t3\t" << fixed << setprecision(11) << showpoint << elemental->mass << "\t" << elemental->getName() << "\t" << elemental->getSymbol() <<endl;
   }
 }
Index: src/Parser/XyzParser.cpp
===================================================================
--- src/Parser/XyzParser.cpp	(revision ff6a100b82687d82d4c2fef31bdf265072bad599)
+++ src/Parser/XyzParser.cpp	(revision 2fe9719f8a0aa9ecd805749ffe7ff7b10ebcc6fe)
@@ -72,5 +72,5 @@
   vector<atom*> atoms = World::getInstance().getAllAtoms();
   for(vector<atom*>::iterator it = atoms.begin(); it != atoms.end(); it++) {
-    *file << noshowpoint << (*it)->getType()->symbol << "\t" << (*it)->x[0] << "\t" << (*it)->x[1] << "\t" << (*it)->x[2] << endl;
+    *file << noshowpoint << (*it)->getType()->getSymbol() << "\t" << (*it)->x[0] << "\t" << (*it)->x[1] << "\t" << (*it)->x[2] << endl;
   }
 }
Index: src/UIElements/QT4/QTDialog.cpp
===================================================================
--- src/UIElements/QT4/QTDialog.cpp	(revision ff6a100b82687d82d4c2fef31bdf265072bad599)
+++ src/UIElements/QT4/QTDialog.cpp	(revision 2fe9719f8a0aa9ecd805749ffe7ff7b10ebcc6fe)
@@ -556,5 +556,5 @@
   {
     stringstream sstr;
-    sstr << (*iter).first << "\t" << (*iter).second->name;
+    sstr << (*iter).first << "\t" << (*iter).second->getName();
     inputBox->addItem(QString(sstr.str().c_str()),QVariant((*iter).first));
   }
@@ -591,5 +591,5 @@
   {
     stringstream sstr;
-    sstr << (*iter).first << "\t" << (*iter).second->name;
+    sstr << (*iter).first << "\t" << (*iter).second->getName();
     inputBox->addItem(QString(sstr.str().c_str()),QVariant((*iter).first));
   }
Index: src/analysis_bonds.cpp
===================================================================
--- src/analysis_bonds.cpp	(revision ff6a100b82687d82d4c2fef31bdf265072bad599)
+++ src/analysis_bonds.cpp	(revision 2fe9719f8a0aa9ecd805749ffe7ff7b10ebcc6fe)
@@ -215,5 +215,5 @@
           if (((OtherAtom->type == first) || (OtherAtom->type == second)) && (theAtom->nr < OtherAtom->nr)) {
             count++;
-            DoLog(1) && (Log() << Verbose(1) << first->name << "-" << second->name << " bond found between " << *Walker << " and " << *OtherAtom << "." << endl);
+            DoLog(1) && (Log() << Verbose(1) << *first << "-" << *second << " bond found between " << *Walker << " and " << *OtherAtom << "." << endl);
           }
         }
@@ -262,5 +262,5 @@
         if (result) { // check results
           count++;
-          DoLog(1) && (Log() << Verbose(1) << first->name << "-" << second->name << "-" << third->name << " bond found at " << *Walker << "." << endl);
+          DoLog(1) && (Log() << Verbose(1) << *first << "-" << *second << "-" << *third << " bond found at " << *Walker << "." << endl);
         }
       }
Index: src/analysis_correlation.cpp
===================================================================
--- src/analysis_correlation.cpp	(revision ff6a100b82687d82d4c2fef31bdf265072bad599)
+++ src/analysis_correlation.cpp	(revision 2fe9719f8a0aa9ecd805749ffe7ff7b10ebcc6fe)
@@ -53,5 +53,5 @@
         if (type1 != type2) {
           PairsOfElements.insert( pair<element *, element*>(*type1,*type2) );
-          DoLog(1) && (Log() << Verbose(1) << "Creating element pair " << (*type1)->symbol << " and " << (*type2)->symbol << "." << endl);
+          DoLog(1) && (Log() << Verbose(1) << "Creating element pair " << *(*type1) << " and " << *(*type2) << "." << endl);
         }
   } else if (elements.size() == 1) { // one to all are valid
@@ -120,5 +120,5 @@
         if (type1 != type2) {
           PairsOfElements.insert( pair<element *, element*>(*type1,*type2) );
-          DoLog(1) && (Log() << Verbose(1) << "Creating element pair " << (*type1)->symbol << " and " << (*type2)->symbol << "." << endl);
+          DoLog(1) && (Log() << Verbose(1) << "Creating element pair " << *(*type1) << " and " << *(*type2) << "." << endl);
         }
   } else if (elements.size() == 1) { // one to all are valid
Index: src/atom.cpp
===================================================================
--- src/atom.cpp	(revision ff6a100b82687d82d4c2fef31bdf265072bad599)
+++ src/atom.cpp	(revision 2fe9719f8a0aa9ecd805749ffe7ff7b10ebcc6fe)
@@ -193,5 +193,5 @@
 {
   if (out != NULL) {
-    *out << type->symbol << "\t" << x[0] << "\t" << x[1] << "\t" << x[2] << "\t" << endl;
+    *out << type->getSymbol() << "\t" << x[0] << "\t" << x[1] << "\t" << x[2] << "\t" << endl;
     return true;
   } else
@@ -231,5 +231,5 @@
 {
   if (out != NULL) {
-    *out << type->symbol << "\t";
+    *out << type->getSymbol() << "\t";
     *out << Trajectory.R.at(step)[0] << "\t";
     *out << Trajectory.R.at(step)[1] << "\t";
@@ -247,5 +247,5 @@
 void atom::OutputMPQCLine(ostream * const out, const Vector *center, int *AtomNo = NULL) const
 {
-  *out << "\t\t" << type->symbol << " [ " << x[0]-center->at(0) << "\t" << x[1]-center->at(1) << "\t" << x[2]-center->at(2) << " ]" << endl;
+  *out << "\t\t" << type->getSymbol() << " [ " << x[0]-center->at(0) << "\t" << x[1]-center->at(1) << "\t" << x[2]-center->at(2) << " ]" << endl;
   if (AtomNo != NULL)
     *AtomNo++;
Index: src/config.cpp
===================================================================
--- src/config.cpp	(revision ff6a100b82687d82d4c2fef31bdf265072bad599)
+++ src/config.cpp	(revision 2fe9719f8a0aa9ecd805749ffe7ff7b10ebcc6fe)
@@ -1279,5 +1279,5 @@
     AtomNo = 0;
     for (molecule::const_iterator iter = (*MolRunner)->begin(); iter != (*MolRunner)->end(); ++iter) {
-      sprintf(name, "%2s%2d",(*iter)->type->symbol, elementNo[(*iter)->type->Z]);
+      sprintf(name, "%2s%2d",(*iter)->type->getSymbol().c_str(), elementNo[(*iter)->type->Z]);
       elementNo[(*iter)->type->Z] = (elementNo[(*iter)->type->Z]+1) % 100;   // confine to two digits
       fprintf(f,
@@ -1294,5 +1294,5 @@
              (double)(*iter)->type->NoValenceOrbitals,          /* temperature factor */
              "0",            /* segment identifier */
-             (*iter)->type->symbol,    /* element symbol */
+             (*iter)->type->getSymbol().c_str(),    /* element symbol */
              "0");           /* charge */
       AtomNo++;
@@ -1332,5 +1332,5 @@
   AtomNo = 0;
   for (molecule::const_iterator iter = mol->begin(); iter != mol->end(); ++iter) {
-    sprintf(name, "%2s%2d",(*iter)->type->symbol, elementNo[(*iter)->type->Z]);
+    sprintf(name, "%2s%2d",(*iter)->type->getSymbol().c_str(), elementNo[(*iter)->type->Z]);
     elementNo[(*iter)->type->Z] = (elementNo[(*iter)->type->Z]+1) % 100;   // confine to two digits
     fprintf(f,
@@ -1347,5 +1347,5 @@
            (double)(*iter)->type->NoValenceOrbitals,          /* temperature factor */
            "0",            /* segment identifier */
-           (*iter)->type->symbol,    /* element symbol */
+           (*iter)->type->getSymbol().c_str(),    /* element symbol */
            "0");           /* charge */
     AtomNo++;
@@ -1392,5 +1392,5 @@
     *output << (*iter)->node->at(0) << "\t" << (*iter)->node->at(1) << "\t" << (*iter)->node->at(2) << "\t";
     *output << static_cast<double>((*iter)->type->Valence) << "\t";
-    *output << (*iter)->type->symbol << "\t";
+    *output << (*iter)->type->getSymbol() << "\t";
     for (BondList::iterator runner = (*iter)->ListOfBonds.begin(); runner != (*iter)->ListOfBonds.end(); runner++)
       *output << (*runner)->GetOtherAtom(*iter)->nr << "\t";
@@ -1464,5 +1464,5 @@
         *output << (*iter)->node->at(0) << "\t" << (*iter)->node->at(1) << "\t" << (*iter)->node->at(2) << "\t";
         *output << (double)(*iter)->type->Valence << "\t";
-        *output << (*iter)->type->symbol << "\t";
+        *output << (*iter)->type->getSymbol() << "\t";
         for (BondList::iterator runner = (*iter)->ListOfBonds.begin(); runner != (*iter)->ListOfBonds.end(); runner++)
           *output << LocalNotoGlobalNoMap[ (*runner)->GetOtherAtom((*iter))->getId() ] << "\t";
Index: src/element.hpp
===================================================================
--- src/element.hpp	(revision ff6a100b82687d82d4c2fef31bdf265072bad599)
+++ src/element.hpp	(revision 2fe9719f8a0aa9ecd805749ffe7ff7b10ebcc6fe)
@@ -33,6 +33,4 @@
     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
@@ -43,19 +41,21 @@
     double HBondAngle[NDIM];     //!< typical angle for one, two, three bonded hydrogen (in degrees)
 
-  element();
-  ~element();
+    element();
+    ~element();
 
-  // accessor functions
-  atomicNumber_t getNumber() const;
-  std::string getSymbol() const;
-  void setSymbol(const std::string&);
-  std::string getName() const;
-  void setName(const std::string&);
+    // accessor functions
+    atomicNumber_t getNumber() const;
+    std::string getSymbol() const;
+    void setSymbol(const std::string&);
+    std::string getName() const;
+    void setName(const std::string&);
 
-  //> print element entries to screen
-  bool Output(std::ostream * const out) const;
-  bool Checkout(std::ostream * const out, const int No, const int NoOfAtoms) const;
+    //> print element entries to screen
+    bool Output(std::ostream * const out) const;
+    bool Checkout(std::ostream * const out, const int No, const int NoOfAtoms) const;
 
   private:
+    char name[64];  //!< atom name, i.e. "Hydrogren"
+    char symbol[3]; //!< short form of the atom, i.e. "H"
 };
 
Index: src/molecule.cpp
===================================================================
--- src/molecule.cpp	(revision ff6a100b82687d82d4c2fef31bdf265072bad599)
+++ src/molecule.cpp	(revision 2fe9719f8a0aa9ecd805749ffe7ff7b10ebcc6fe)
@@ -218,5 +218,5 @@
       if(pointer->getName() == "Unknown"){
         stringstream sstr;
-        sstr << pointer->type->symbol << pointer->nr+1;
+        sstr << pointer->type->getSymbol() << pointer->nr+1;
         pointer->setName(sstr.str());
       }
@@ -975,5 +975,5 @@
       NoNonHydrogen++;
     stringstream sstr;
-    sstr << (*iter)->type->symbol << (*iter)->nr+1;
+    sstr << (*iter)->type->getSymbol() << (*iter)->nr+1;
     (*iter)->setName(sstr.str());
     DoLog(3) && (Log() << Verbose(3) << "Naming atom nr. " << (*iter)->nr << " " << (*iter)->getName() << "." << endl);
Index: src/periodentafel.cpp
===================================================================
--- src/periodentafel.cpp	(revision ff6a100b82687d82d4c2fef31bdf265072bad599)
+++ src/periodentafel.cpp	(revision 2fe9719f8a0aa9ecd805749ffe7ff7b10ebcc6fe)
@@ -168,7 +168,10 @@
     cin >> tmp->mass;
     DoLog(0) && (Log() << Verbose(0) << "Name [max 64 chars]: " << endl);
-    cin >> tmp->name;
+    string tmpstring;
+    cin >> tmpstring;
+    tmp->setName(tmpstring);
     DoLog(0) && (Log() << Verbose(0) << "Short form [max 3 chars]: " << endl);
-    cin >> tmp->symbol;
+    cin >> tmpstring;
+    tmp->setSymbol(tmpstring);
     AddElement(tmp);
     return tmp;
@@ -297,7 +300,10 @@
     while (!(*input).eof()) {
       element *neues = new element;
-      (*input) >> neues->name;
-      //(*input) >> ws;
-      (*input) >> neues->symbol;
+      string tmpstring;
+      (*input) >> tmpstring;
+      neues->setName(tmpstring);
+      //(*input) >> ws;
+      (*input) >> tmpstring;
+      neues->setSymbol(tmpstring);
       //(*input) >> ws;
       (*input) >> neues->period;
@@ -329,5 +335,5 @@
           ASSERT(InserterTest.second, "Could not insert new element into periodentafel on LoadElementsDatabase().");
         }
-        DoLog(0) && (Log() << Verbose(0) << " " << elements[neues->getNumber()]->symbol);
+        DoLog(0) && (Log() << Verbose(0) << " " << *neues);
         counter++;
       } else {
