Index: src/Actions/FillAction/FillRegularGridAction.cpp
===================================================================
--- src/Actions/FillAction/FillRegularGridAction.cpp	(revision d93d2c1fddecb0223bade802972bb4bb9747f3a0)
+++ src/Actions/FillAction/FillRegularGridAction.cpp	(revision c0f2fc40afbd5e6b6af4eef0a9cd8ea285a6ec5f)
@@ -46,5 +46,4 @@
 #include "Filling/Preparators/BoxFillerPreparator.hpp"
 #include "molecule.hpp"
-#include "MoleculeListClass.hpp"
 #include "Parser/FormatParserInterface.hpp"
 #include "Parser/FormatParserStorage.hpp"
Index: src/Actions/FillAction/FillVolumeAction.cpp
===================================================================
--- src/Actions/FillAction/FillVolumeAction.cpp	(revision d93d2c1fddecb0223bade802972bb4bb9747f3a0)
+++ src/Actions/FillAction/FillVolumeAction.cpp	(revision c0f2fc40afbd5e6b6af4eef0a9cd8ea285a6ec5f)
@@ -46,5 +46,4 @@
 #include "Filling/Preparators/ShapeVolumeFillerPreparator.hpp"
 #include "molecule.hpp"
-#include "MoleculeListClass.hpp"
 #include "Parser/FormatParserInterface.hpp"
 #include "Parser/FormatParserStorage.hpp"
Index: src/Actions/FillAction/SuspendInMoleculeAction.cpp
===================================================================
--- src/Actions/FillAction/SuspendInMoleculeAction.cpp	(revision d93d2c1fddecb0223bade802972bb4bb9747f3a0)
+++ src/Actions/FillAction/SuspendInMoleculeAction.cpp	(revision c0f2fc40afbd5e6b6af4eef0a9cd8ea285a6ec5f)
@@ -49,5 +49,4 @@
 #include "LinkedCell/PointCloudAdaptor.hpp"
 #include "molecule.hpp"
-#include "MoleculeListClass.hpp"
 #include "Parser/FormatParserInterface.hpp"
 #include "Parser/FormatParserStorage.hpp"
Index: src/Actions/GraphAction/UpdateMoleculesAction.cpp
===================================================================
--- src/Actions/GraphAction/UpdateMoleculesAction.cpp	(revision d93d2c1fddecb0223bade802972bb4bb9747f3a0)
+++ src/Actions/GraphAction/UpdateMoleculesAction.cpp	(revision c0f2fc40afbd5e6b6af4eef0a9cd8ea285a6ec5f)
@@ -46,5 +46,4 @@
 #include "Graph/DepthFirstSearchAnalysis.hpp"
 #include "molecule.hpp"
-#include "MoleculeListClass.hpp"
 #include "World.hpp"
 
@@ -83,10 +82,9 @@
   // 0a. remove all present molecules
   LOG(0, "STATUS: Removing all present molecules.");
-  MoleculeListClass *molecules = World::getInstance().getMolecules();
   vector<molecule *> allmolecules = World::getInstance().getAllMolecules();
-  for (vector<molecule *>::iterator MolRunner = allmolecules.begin(); MolRunner != allmolecules.end(); ++MolRunner) {
-    molecules->erase(*MolRunner);
+  for (vector<molecule *>::iterator MolRunner = allmolecules.begin();
+      MolRunner != allmolecules.end();
+      ++MolRunner)
     World::getInstance().destroyMolecule(*MolRunner);
-  }
 
   // 2. scan for connected subgraphs
@@ -112,15 +110,13 @@
   {
     // remove all present molecules
-    MoleculeListClass *molecules = World::getInstance().getMolecules();
     vector<molecule *> allmolecules = World::getInstance().getAllMolecules();
-    for (vector<molecule *>::iterator MolRunner = allmolecules.begin(); MolRunner != allmolecules.end(); ++MolRunner) {
-      molecules->erase(*MolRunner);
+    for (vector<molecule *>::iterator MolRunner = allmolecules.begin();
+        MolRunner != allmolecules.end();
+        ++MolRunner)
       World::getInstance().destroyMolecule(*MolRunner);
-    }
   }
 
   {
     // construct the old state
-    MoleculeListClass *molecules = World::getInstance().getMolecules();
     molecule *mol = NULL;
     for (MolAtomList::const_iterator iter = state->moleculelist.begin(); iter != state->moleculelist.end(); ++iter) {
@@ -132,5 +128,4 @@
         mol->AddAtom(Walker);
       }
-      molecules->insert(mol);
     }
   }
Index: src/Actions/MoleculeAction/BondFileAction.def
===================================================================
--- src/Actions/MoleculeAction/BondFileAction.def	(revision d93d2c1fddecb0223bade802972bb4bb9747f3a0)
+++ src/Actions/MoleculeAction/BondFileAction.def	(revision c0f2fc40afbd5e6b6af4eef0a9cd8ea285a6ec5f)
@@ -7,6 +7,4 @@
 
 // all includes and forward declarations necessary for non-integral types below
-class MoleculeListClass;
-
 #include "Parameters/Validators/DummyValidator.hpp"
 #include "Parameters/Validators/Specific/FilePresentValidator.hpp"
Index: src/Actions/MoleculeAction/ChangeNameAction.def
===================================================================
--- src/Actions/MoleculeAction/ChangeNameAction.def	(revision d93d2c1fddecb0223bade802972bb4bb9747f3a0)
+++ src/Actions/MoleculeAction/ChangeNameAction.def	(revision c0f2fc40afbd5e6b6af4eef0a9cd8ea285a6ec5f)
@@ -7,6 +7,4 @@
 
 // all includes and forward declarations necessary for non-integral types below
-class MoleculeListClass;
-
 #include "Parameters/Validators/DummyValidator.hpp"
 
Index: src/Actions/MoleculeAction/LinearInterpolationofTrajectoriesAction.def
===================================================================
--- src/Actions/MoleculeAction/LinearInterpolationofTrajectoriesAction.def	(revision d93d2c1fddecb0223bade802972bb4bb9747f3a0)
+++ src/Actions/MoleculeAction/LinearInterpolationofTrajectoriesAction.def	(revision c0f2fc40afbd5e6b6af4eef0a9cd8ea285a6ec5f)
@@ -7,6 +7,4 @@
 
 // all includes and forward declarations necessary for non-integral types below
-class MoleculeListClass;
-
 #include "Parameters/Validators/DummyValidator.hpp"
 #include "Parameters/Validators/GenericValidators.hpp"
Index: src/Actions/MoleculeAction/LoadAction.cpp
===================================================================
--- src/Actions/MoleculeAction/LoadAction.cpp	(revision d93d2c1fddecb0223bade802972bb4bb9747f3a0)
+++ src/Actions/MoleculeAction/LoadAction.cpp	(revision c0f2fc40afbd5e6b6af4eef0a9cd8ea285a6ec5f)
@@ -38,4 +38,5 @@
 #include "CodePatterns/Verbose.hpp"
 #include "Descriptors/MoleculeIdDescriptor.hpp"
+#include "Descriptors/MoleculeOrderDescriptor.hpp"
 #include "Parser/Exceptions.hpp"
 #include "Parser/FormatParserInterface.hpp"
@@ -43,5 +44,4 @@
 #include "Parser/FormatParser_Parameters.hpp"
 #include "molecule.hpp"
-#include "MoleculeListClass.hpp"
 #include "World.hpp"
 
@@ -102,10 +102,10 @@
 
     // set file name of last molecule
-    MoleculeList::const_reverse_iterator iter = World::getInstance().getMolecules()->ListOfMolecules.rbegin();
-    (*iter)->SetNameFromFilename(FilenamePrefix.c_str());
-    LOG(0, "Chemical formula is " << (*iter)->getFormula());
+    molecule * const mol = World::getInstance().getMolecule(MoleculeByOrder(-1));
+    mol->SetNameFromFilename(FilenamePrefix.c_str());
+    LOG(0, "Chemical formula is " << mol->getFormula());
 
     return ActionState::ptr(
-        new MoleculeLoadState((*iter)->getId(),FilenamePrefix,FilenameSuffix,boost::shared_ptr<FormatParser_Parameters>(ParserParams),params)
+        new MoleculeLoadState(mol->getId(),FilenamePrefix,FilenameSuffix,boost::shared_ptr<FormatParser_Parameters>(ParserParams),params)
     );
   }
@@ -151,11 +151,11 @@
 
   // set file name of last molecule
-  MoleculeList::const_reverse_iterator iter = World::getInstance().getMolecules()->ListOfMolecules.rbegin();
-  (*iter)->SetNameFromFilename(state->FilenamePrefix.c_str());
-  (*iter)->setId(state->molId);
-  LOG(0, "Chemical formula is " << (*iter)->getFormula());
+  molecule * const mol = World::getInstance().getMolecule(MoleculeByOrder(-1));
+  mol->SetNameFromFilename(state->FilenamePrefix.c_str());
+  mol->setId(state->molId);
+  LOG(0, "Chemical formula is " << mol->getFormula());
 
   return ActionState::ptr(
-      new MoleculeLoadState((*iter)->getId(),state->FilenamePrefix,state->FilenameSuffix,boost::shared_ptr<FormatParser_Parameters>(ParserParams),params)
+      new MoleculeLoadState(mol->getId(),state->FilenamePrefix,state->FilenameSuffix,boost::shared_ptr<FormatParser_Parameters>(ParserParams),params)
   );
 }
Index: src/Actions/MoleculeAction/RotateAroundSelfByAngleAction.def
===================================================================
--- src/Actions/MoleculeAction/RotateAroundSelfByAngleAction.def	(revision d93d2c1fddecb0223bade802972bb4bb9747f3a0)
+++ src/Actions/MoleculeAction/RotateAroundSelfByAngleAction.def	(revision c0f2fc40afbd5e6b6af4eef0a9cd8ea285a6ec5f)
@@ -7,5 +7,4 @@
 
 // all includes and forward declarations necessary for non-integral types below
-class MoleculeListClass;
 class Vector;
 
Index: src/Actions/MoleculeAction/RotateToPrincipalAxisSystemAction.def
===================================================================
--- src/Actions/MoleculeAction/RotateToPrincipalAxisSystemAction.def	(revision d93d2c1fddecb0223bade802972bb4bb9747f3a0)
+++ src/Actions/MoleculeAction/RotateToPrincipalAxisSystemAction.def	(revision c0f2fc40afbd5e6b6af4eef0a9cd8ea285a6ec5f)
@@ -9,6 +9,4 @@
 #include "Actions/Values.hpp"
 #include "LinearAlgebra/Vector.hpp"
-
-class MoleculeListClass;
 
 #include "Parameters/Validators/Specific/VectorNotZeroValidator.hpp"
Index: src/Actions/MoleculeAction/SaveAdjacencyAction.def
===================================================================
--- src/Actions/MoleculeAction/SaveAdjacencyAction.def	(revision d93d2c1fddecb0223bade802972bb4bb9747f3a0)
+++ src/Actions/MoleculeAction/SaveAdjacencyAction.def	(revision c0f2fc40afbd5e6b6af4eef0a9cd8ea285a6ec5f)
@@ -7,6 +7,4 @@
 
 // all includes and forward declarations necessary for non-integral types below
-class MoleculeListClass;
-
 #include "Parameters/Validators/Ops_Validator.hpp"
 #include "Parameters/Validators/Specific/FilePresentValidator.hpp"
Index: src/Actions/MoleculeAction/SaveBondsAction.def
===================================================================
--- src/Actions/MoleculeAction/SaveBondsAction.def	(revision d93d2c1fddecb0223bade802972bb4bb9747f3a0)
+++ src/Actions/MoleculeAction/SaveBondsAction.def	(revision c0f2fc40afbd5e6b6af4eef0a9cd8ea285a6ec5f)
@@ -7,6 +7,4 @@
 
 // all includes and forward declarations necessary for non-integral types below
-class MoleculeListClass;
-
 #include "Parameters/Validators/Ops_Validator.hpp"
 #include "Parameters/Validators/Specific/FilePresentValidator.hpp"
Index: src/Actions/MoleculeAction/SaveTemperatureAction.def
===================================================================
--- src/Actions/MoleculeAction/SaveTemperatureAction.def	(revision d93d2c1fddecb0223bade802972bb4bb9747f3a0)
+++ src/Actions/MoleculeAction/SaveTemperatureAction.def	(revision c0f2fc40afbd5e6b6af4eef0a9cd8ea285a6ec5f)
@@ -7,6 +7,4 @@
 
 // all includes and forward declarations necessary for non-integral types below
-class MoleculeListClass;
-
 #include "Parameters/Validators/Ops_Validator.hpp"
 #include "Parameters/Validators/Specific/FilePresentValidator.hpp"
Index: src/Actions/WorldAction/InputAction.cpp
===================================================================
--- src/Actions/WorldAction/InputAction.cpp	(revision d93d2c1fddecb0223bade802972bb4bb9747f3a0)
+++ src/Actions/WorldAction/InputAction.cpp	(revision c0f2fc40afbd5e6b6af4eef0a9cd8ea285a6ec5f)
@@ -36,6 +36,7 @@
 
 #include "CodePatterns/Log.hpp"
+
+#include "Descriptors/MoleculeOrderDescriptor.hpp"
 #include "molecule.hpp"
-#include "MoleculeListClass.hpp"
 #include "Parser/Exceptions.hpp"
 #include "Parser/FormatParserStorage.hpp"
@@ -57,6 +58,4 @@
 /** =========== define the function ====================== */
 ActionState::ptr WorldInputAction::performCall() {
-//  MoleculeListClass *molecules = World::getInstance().getMolecules();
-//  molecule *mol = NULL;
   boost::filesystem::ifstream test;
   FormatParserStorage &parsers = FormatParserStorage::getInstance();
@@ -99,8 +98,7 @@
 
     // set file name of last molecule
-    MoleculeList::const_iterator iter = World::getInstance().getMolecules()->ListOfMolecules.end();
-    iter--;
-    (*iter)->SetNameFromFilename(FilenamePrefix.c_str());
-    LOG(0, "Chemical formula is " << (*iter)->getFormula());
+    molecule * const mol = World::getInstance().getMolecule(MoleculeByOrder(-1));
+    mol->SetNameFromFilename(FilenamePrefix.c_str());
+    LOG(0, "Chemical formula is " << mol->getFormula());
   }
   return Action::success;
Index: src/Actions/WorldAction/RepeatBoxAction.cpp
===================================================================
--- src/Actions/WorldAction/RepeatBoxAction.cpp	(revision d93d2c1fddecb0223bade802972bb4bb9747f3a0)
+++ src/Actions/WorldAction/RepeatBoxAction.cpp	(revision c0f2fc40afbd5e6b6af4eef0a9cd8ea285a6ec5f)
@@ -40,5 +40,4 @@
 #include "CodePatterns/Log.hpp"
 #include "molecule.hpp"
-#include "MoleculeListClass.hpp"
 #include "LinearAlgebra/Vector.hpp"
 #include "LinearAlgebra/RealSpaceMatrix.hpp"
@@ -86,5 +85,4 @@
   // add molecules in each repeated domain part
   std::vector<Vector> vectors;
-  MoleculeListClass *molecules = World::getInstance().getMolecules();
   for (n[0] = 0; n[0] < Repeater[0]; n[0]++) {
     y[0] = n[0];
@@ -99,6 +97,4 @@
           LOG(2, "DEBUG: Current mol is " << mol->name << "." << endl);
           molecule * const newmol = mol->CopyMolecule();
-          // TODO: remove this when World does not have MoleculeListClass anymore.
-          molecules->insert(newmol);
           x = y;
           x *= M;
