Index: src/Analysis/analysis_bonds.cpp
===================================================================
--- src/Analysis/analysis_bonds.cpp	(revision ada8dfef364eee1a6c3f429cb379f943b505b5d5)
+++ src/Analysis/analysis_bonds.cpp	(revision 2bfc5b108b5b586dc7738bcfddb9149a69e37af0)
@@ -43,5 +43,4 @@
 #include "CodePatterns/Log.hpp"
 #include "molecule.hpp"
-#include "MoleculeListClass.hpp"
 
 /** Calculates the min, mean and maximum bond counts for the given molecule.
@@ -162,5 +161,5 @@
  * \param *Interface2Element or NULL
  */
-int CountHydrogenBridgeBonds(MoleculeListClass *molecules, const element * InterfaceElement = NULL, const element * Interface2Element = NULL)
+int CountHydrogenBridgeBonds(const std::vector<molecule *> &molecules, const element * InterfaceElement = NULL, const element * Interface2Element = NULL)
 {
   Info FunctionInfo(__func__);
@@ -175,6 +174,6 @@
 
   // go through every molecule
-  for (MoleculeList::const_iterator MolWalker = molecules->ListOfMolecules.begin();
-      MolWalker != molecules->ListOfMolecules.end();
+  for (std::vector<molecule *>::const_iterator MolWalker = molecules.begin();
+      MolWalker != molecules.end();
       ++MolWalker) {
     LOG(2, "INFO: Current molecule is " << (*MolWalker)->getName() << ".");
@@ -290,9 +289,9 @@
  * \return number of found bonds (\a *first-\a *second)
  */
-int CountBondsOfTwo(MoleculeListClass * const molecules, const element * const first, const element * const second)
+int CountBondsOfTwo(const std::vector<molecule *> &molecules, const element * const first, const element * const second)
 {
   int count = 0;
 
-  for (MoleculeList::const_iterator MolWalker = molecules->ListOfMolecules.begin();MolWalker != molecules->ListOfMolecules.end(); MolWalker++) {
+  for (std::vector<molecule *>::const_iterator MolWalker = molecules.begin();MolWalker != molecules.end(); MolWalker++) {
     molecule::iterator Walker = (*MolWalker)->begin();
     for(;Walker!=(*MolWalker)->end();++Walker){
@@ -324,5 +323,5 @@
  * \return number of found bonds (\a *first-\a *second-\a *third, \a *third-\a *second-\a *first, respectively)
  */
-int CountBondsOfThree(MoleculeListClass * const molecules, const element * const first, const element * const second, const element * const third)
+int CountBondsOfThree(const std::vector<molecule *> &molecules, const element * const first, const element * const second, const element * const third)
 {
   int count = 0;
@@ -333,5 +332,5 @@
   ElementArray[1] = third;
 
-  for (MoleculeList::const_iterator MolWalker = molecules->ListOfMolecules.begin();MolWalker != molecules->ListOfMolecules.end(); MolWalker++) {
+  for (std::vector<molecule *>::const_iterator MolWalker = molecules.begin();MolWalker != molecules.end(); MolWalker++) {
     molecule::iterator Walker = (*MolWalker)->begin();
     for(;Walker!=(*MolWalker)->end();++Walker){
Index: src/Analysis/analysis_bonds.hpp
===================================================================
--- src/Analysis/analysis_bonds.hpp	(revision ada8dfef364eee1a6c3f429cb379f943b505b5d5)
+++ src/Analysis/analysis_bonds.hpp	(revision 2bfc5b108b5b586dc7738bcfddb9149a69e37af0)
@@ -8,4 +8,6 @@
 #ifndef ANALYSIS_BONDS_HPP_
 #define ANALYSIS_BONDS_HPP_
+
+#include <vector>
 
 using namespace std;
@@ -25,5 +27,4 @@
 
 class element;
-class MoleculeListClass;
 class molecule;
 
@@ -33,7 +34,7 @@
 void MinMeanMaxBondDistanceBetweenElements(const molecule *mol, const element *type1, const element *type2, double &Min, double &Mean, double &Max);
 
-int CountHydrogenBridgeBonds(MoleculeListClass * const molecules, const element * InterfaceElement, const element * Interface2Element);
-int CountBondsOfTwo(MoleculeListClass * const molecules, const element * const first, const element * const second);
-int CountBondsOfThree(MoleculeListClass * const molecules, const element * const first, const element * const second, const element * const third);
+int CountHydrogenBridgeBonds(const std::vector<molecule *> &molecules, const element * InterfaceElement, const element * Interface2Element);
+int CountBondsOfTwo(const std::vector<molecule *> &molecules, const element * const first, const element * const second);
+int CountBondsOfThree(const std::vector<molecule *> &molecules, const element * const first, const element * const second, const element * const third);
 
 #endif /* ANALYSIS_BONDS_HPP_ */
Index: src/Analysis/unittests/CountBondsUnitTest.cpp
===================================================================
--- src/Analysis/unittests/CountBondsUnitTest.cpp	(revision ada8dfef364eee1a6c3f429cb379f943b505b5d5)
+++ src/Analysis/unittests/CountBondsUnitTest.cpp	(revision 2bfc5b108b5b586dc7738bcfddb9149a69e37af0)
@@ -53,5 +53,4 @@
 #include "Graph/BondGraph.hpp"
 #include "molecule.hpp"
-#include "MoleculeListClass.hpp"
 #include "World.hpp"
 
@@ -99,7 +98,5 @@
   TestMolecule1->AddAtom(Walker);
 
-  molecules = World::getInstance().getMolecules();
-  CPPUNIT_ASSERT(molecules != NULL && "could not obtain list of molecules");
-  molecules->insert(TestMolecule1);
+  molecules.push_back(TestMolecule1);
 
   // check that TestMolecule1 was correctly constructed
@@ -124,4 +121,6 @@
   delete(BG);
 
+  molecules.clear();
+
   World::purgeInstance();
 };
@@ -156,5 +155,5 @@
   // create TestMolecule2 as copy
   TestMolecule2 = TestMolecule1->CopyMolecule();
-  molecules->insert(TestMolecule2);
+  molecules.push_back(TestMolecule2);
   CPPUNIT_ASSERT_EQUAL( TestMolecule2->getAtomCount(), 3 );
 
Index: src/Analysis/unittests/CountBondsUnitTest.hpp
===================================================================
--- src/Analysis/unittests/CountBondsUnitTest.hpp	(revision ada8dfef364eee1a6c3f429cb379f943b505b5d5)
+++ src/Analysis/unittests/CountBondsUnitTest.hpp	(revision 2bfc5b108b5b586dc7738bcfddb9149a69e37af0)
@@ -17,4 +17,5 @@
 #include <cppunit/extensions/HelperMacros.h>
 
+#include <vector>
 
 class BondGraph;
@@ -42,5 +43,5 @@
 private:
 
-      MoleculeListClass *molecules;
+      std::vector<molecule *> molecules;
       molecule *TestMolecule1;
       molecule *TestMolecule2;
