Index: src/LinkedCell/unittests/Makefile.am
===================================================================
--- src/LinkedCell/unittests/Makefile.am	(revision cbdcb10f6cf4dbc5be84a8c1cd660b931affa17f)
+++ src/LinkedCell/unittests/Makefile.am	(revision 2ced6b357227c511512210e4f9802519b5ff478c)
@@ -29,6 +29,4 @@
 
 LINKEDCELLLIBS = \
-	../libMolecuilderUI.la \
-	../libMolecuilder.la \
 	$(top_builddir)/LinearAlgebra/src/LinearAlgebra/libLinearAlgebra.la \
 	${CodePatterns_LIBS} \
@@ -38,10 +36,15 @@
 	../LinkedCell/unittests/linkedcellUnitTest.cpp \
 	../LinkedCell/unittests/linkedcellUnitTest.hpp
-linkedcellUnitTest_LDADD = $(LINKEDCELLLIBS)
+linkedcellUnitTest_LDADD = \
+	../libMolecuilderUI.la \
+	../libMolecuilder.la \
+	$(LINKEDCELLLIBS)
 
 LinkedCellUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
 	../LinkedCell/unittests/LinkedCellUnitTest.cpp \
-	../LinkedCell/unittests/LinkedCellUnitTest.hpp
+	../LinkedCell/unittests/LinkedCellUnitTest.hpp \
+	../LinkedCell/unittests/stubs/TesselPointStub.cpp
 LinkedCellUnitTest_LDADD = \
+	../libMolecuilderLinkedCell.la \
 	$(LINKEDCELLLIBS)
 
@@ -49,14 +52,12 @@
 	../LinkedCell/unittests/LinkedCell_ControllerUnitTest.cpp \
 	../LinkedCell/unittests/LinkedCell_ControllerUnitTest.hpp \
-	../LinkedCell/unittests/stubs/LinkedCell_ModelStub.cpp \
-	../LinkedCell/unittests/stubs/LinkedCell_ViewStub.cpp \
-	../LinkedCell/unittests/stubs/LinkedCellStub.cpp \
-  ../LinkedCell/LinkedCell_Controller.cpp \
-  ../LinkedCell/LinkedCell.hpp \
-  ../LinkedCell/LinkedCell_Controller.hpp \
-  ../LinkedCell/LinkedCell_Model.hpp \
-  ../LinkedCell/LinkedCell_View.hpp \
+	../LinkedCell/unittests/stubs/AtomStub.cpp \
+	../LinkedCell/unittests/stubs/AtomObserverStub.cpp \
+	../LinkedCell/unittests/stubs/ObserverBoxStub.cpp \
+	../LinkedCell/unittests/stubs/TesselPointStub.cpp \
+	../LinkedCell/unittests/stubs/WorldStub.cpp \
 	../LinkedCell/PointCloudAdaptor.hpp
 LinkedCell_ControllerUnitTest_LDADD = \
+	../libMolecuilderLinkedCell.la \
 	$(LINKEDCELLLIBS)
 
@@ -65,4 +66,6 @@
 	../LinkedCell/unittests/LinkedCell_ModelUnitTest.hpp
 LinkedCell_ModelUnitTest_LDADD = \
+	../libMolecuilderUI.la \
+	../libMolecuilder.la \
 	$(LINKEDCELLLIBS)
 
@@ -72,4 +75,6 @@
 	../LinkedCell/PointCloudAdaptor.hpp
 LinkedCell_ViewUnitTest_LDADD = \
+	../libMolecuilderUI.la \
+	../libMolecuilder.la \
 	$(LINKEDCELLLIBS)
 
Index: src/LinkedCell/unittests/stubs/AtomObserverStub.cpp
===================================================================
--- src/LinkedCell/unittests/stubs/AtomObserverStub.cpp	(revision 2ced6b357227c511512210e4f9802519b5ff478c)
+++ src/LinkedCell/unittests/stubs/AtomObserverStub.cpp	(revision 2ced6b357227c511512210e4f9802519b5ff478c)
@@ -0,0 +1,45 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2011 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * AtomObserverStub.cpp
+ *
+ *  Created on: Dec 22, 2011
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include "Atom/AtomObserver.hpp"
+#include "Atom/atom_observable.hpp"
+
+#include "CodePatterns/Observer/Channels.hpp"
+#include "CodePatterns/Observer/Notification.hpp"
+#include "CodePatterns/Singleton_impl.hpp"
+
+AtomObserver::AtomObserver() :
+  Relay("AtomObserverStub")
+{
+  Channels *OurChannel = new Channels();
+  NotificationChannels.insert( std::make_pair(this, OurChannel) );
+  OurChannel->addChannel(AtomObservable::PositionChanged);
+}
+
+AtomObserver::~AtomObserver()
+{
+  // observable stuff
+  std::map<Observable *, Channels*>::iterator iter = NotificationChannels.find(this);
+  delete iter->second;
+  NotificationChannels.erase(iter);
+}
+
+CONSTRUCT_SINGLETON(AtomObserver);
Index: src/LinkedCell/unittests/stubs/AtomStub.cpp
===================================================================
--- src/LinkedCell/unittests/stubs/AtomStub.cpp	(revision 2ced6b357227c511512210e4f9802519b5ff478c)
+++ src/LinkedCell/unittests/stubs/AtomStub.cpp	(revision 2ced6b357227c511512210e4f9802519b5ff478c)
@@ -0,0 +1,26 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2011 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * AtomStub.cpp
+ *
+ *  Created on: Dec 22, 2011
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include "Atom/atom.hpp"
+
+int atom::getNr() const {
+  return 0;
+}
Index: src/LinkedCell/unittests/stubs/LinkedCellStub.cpp
===================================================================
--- src/LinkedCell/unittests/stubs/LinkedCellStub.cpp	(revision cbdcb10f6cf4dbc5be84a8c1cd660b931affa17f)
+++ 	(revision )
@@ -1,33 +1,0 @@
-/*
- * Project: MoleCuilder
- * Description: creates and alters molecular systems
- * Copyright (C)  2011 University of Bonn. All rights reserved.
- * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
- */
-
-/*
- * LinkedCellStub.cpp
- *
- *  Created on: Nov 29, 2011
- *      Author: heber
- */
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "CodePatterns/MemDebug.hpp"
-
-#include "LinkedCell/LinkedCell.hpp"
-#include "LinkedCell/types.hpp"
-
-
-
-LinkedCell::LinkedCell::LinkedCell(const tripleIndex &_indices) :
-    indices(_indices)
-{}
-
-LinkedCell::LinkedCell::~LinkedCell()
-{
-}
Index: src/LinkedCell/unittests/stubs/LinkedCell_ModelStub.cpp
===================================================================
--- src/LinkedCell/unittests/stubs/LinkedCell_ModelStub.cpp	(revision cbdcb10f6cf4dbc5be84a8c1cd660b931affa17f)
+++ 	(revision )
@@ -1,79 +1,0 @@
-/*
- * Project: MoleCuilder
- * Description: creates and alters molecular systems
- * Copyright (C)  2011 University of Bonn. All rights reserved.
- * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
- */
-
-/*
- * LinkedCell_ModelStub.cpp
- *
- *  Created on: Nov 29, 2011
- *      Author: heber
- */
-
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "CodePatterns/MemDebug.hpp"
-
-#include "LinkedCell/LinkedCell_Model.hpp"
-
-#include <algorithm>
-#include <boost/multi_array.hpp>
-#include <limits>
-
-#include "Box.hpp"
-#include "CodePatterns/Observer/Observer.hpp"
-#include "LinkedCell/types.hpp"
-
-#include "LinkedCell/LinkedCell_Model_inline.hpp"
-
-// initialize static entities
-LinkedCell::tripleIndex LinkedCell::LinkedCell_Model::NearestNeighbors;
-
-/** Constructor of LinkedCell_Model stub.
- *
- * @param radius desired maximum neighborhood distance
- * @param _domain Box instance with domain size and boundary conditions
- */
-LinkedCell::LinkedCell_Model::LinkedCell_Model(const double radius, const Box &_domain) :
-    ::Observer(std::string("LinkedCell_ModelStub")),
-    internal_Sizes(NULL),
-    domain(_domain)
-{
-}
-
-
-/** Destructor of class LinkedCell_Model stub.
- *
- */
-LinkedCell::LinkedCell_Model::~LinkedCell_Model()
-{
-}
-
-/** Callback function for Observer mechanism.
- *
- * @param publisher reference to the Observable that calls
- */
-void LinkedCell::LinkedCell_Model::update(Observable *publisher)
-{}
-
-/** Callback function for the Notifications mechanism.
- *
- * @param publisher reference to the Observable that calls
- * @param notification specific notification as cause of the call
- */
-void LinkedCell::LinkedCell_Model::recieveNotification(Observable *publisher, Notification_ptr notification)
-{}
-
-/** Callback function when an Observer dies.
- *
- * @param publisher reference to the Observable that calls
- */
-void LinkedCell::LinkedCell_Model::subjectKilled(Observable *publisher)
-{}
-
Index: src/LinkedCell/unittests/stubs/LinkedCell_ViewStub.cpp
===================================================================
--- src/LinkedCell/unittests/stubs/LinkedCell_ViewStub.cpp	(revision cbdcb10f6cf4dbc5be84a8c1cd660b931affa17f)
+++ 	(revision )
@@ -1,37 +1,0 @@
-/*
- * Project: MoleCuilder
- * Description: creates and alters molecular systems
- * Copyright (C)  2011 University of Bonn. All rights reserved.
- * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
- */
-
-/*
- * LinkedCell_ViewStub.cpp
- *
- *  Created on: Nov 29, 2011
- *      Author: heber
- */
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "CodePatterns/MemDebug.hpp"
-
-#include "LinkedCell/LinkedCell_View.hpp"
-#include "LinkedCell/LinkedCell_View_ModelWrapper.hpp"
-
-using namespace LinkedCell;
-
-LinkedCell_View::LinkedCell_View(const LinkedCell_Model &_LC) :
-    LC( new LinkedCell_View_ModelWrapper(&_LC) )
-{}
-
-LinkedCell_View::LinkedCell_View(const LinkedCell_View &_view) :
-    LC( new LinkedCell_View_ModelWrapper(_view.LC->getModel()) )
-{}
-
-LinkedCell_View::~LinkedCell_View()
-{
-}
Index: src/LinkedCell/unittests/stubs/ObserverBoxStub.cpp
===================================================================
--- src/LinkedCell/unittests/stubs/ObserverBoxStub.cpp	(revision 2ced6b357227c511512210e4f9802519b5ff478c)
+++ src/LinkedCell/unittests/stubs/ObserverBoxStub.cpp	(revision 2ced6b357227c511512210e4f9802519b5ff478c)
@@ -0,0 +1,65 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2011 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * ObserverBoxStub.cpp
+ *
+ *  Created on: Dec 22, 2011
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include "Box.hpp"
+
+#include "CodePatterns/Observer/Channels.hpp"
+#include "CodePatterns/Observer/Notification.hpp"
+#include "LinearAlgebra/RealSpaceMatrix.hpp"
+
+
+Box::Box(RealSpaceMatrix _M) :
+  Observable("Box"),
+  M( new RealSpaceMatrix(_M) ),
+  Minv( new RealSpaceMatrix )
+{
+  // observable stuff
+  Channels *OurChannel = new Channels;
+  NotificationChannels.insert( std::make_pair(this, OurChannel) );
+  // add instance for each notification type
+  OurChannel->addChannel(Box::MatrixChanged);
+  *Minv = M->invert();
+
+  conditions.resize(3);
+  conditions[0] = conditions[1] = conditions[2] = Wrap;
+}
+
+Box::~Box()
+{
+  // observable stuff
+  std::map<Observable *, Channels*>::iterator iter = NotificationChannels.find(this);
+  delete iter->second;
+  NotificationChannels.erase(iter);
+
+  delete M;
+  delete Minv;
+}
+
+const RealSpaceMatrix &Box::getMinv() const
+{
+  return *Minv;
+}
+
+const Box::Conditions_t Box::getConditions() const
+{
+  return conditions;
+}
+
Index: src/LinkedCell/unittests/stubs/TesselPointStub.cpp
===================================================================
--- src/LinkedCell/unittests/stubs/TesselPointStub.cpp	(revision 2ced6b357227c511512210e4f9802519b5ff478c)
+++ src/LinkedCell/unittests/stubs/TesselPointStub.cpp	(revision 2ced6b357227c511512210e4f9802519b5ff478c)
@@ -0,0 +1,52 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2011 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * TesselPointStub.cpp
+ *
+ *  Created on: Dec 22, 2011
+ *      Author: heber
+ */
+
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include <iostream>
+
+class TesselPoint {
+public:
+  TesselPoint();
+  virtual ~TesselPoint();
+
+  virtual void UpdateSteps();
+
+  TesselPoint * getTesselPoint();
+};
+
+TesselPoint::TesselPoint()
+{}
+
+TesselPoint::~TesselPoint()
+{}
+
+void TesselPoint::UpdateSteps()
+{}
+
+TesselPoint * TesselPoint::getTesselPoint() {
+  return this;
+}
+
+std::ostream & operator<<(std::ostream &out, const TesselPoint &a)
+{
+  out << "TesselPointStub: " << &a;
+  return out;
+}
Index: src/LinkedCell/unittests/stubs/WorldStub.cpp
===================================================================
--- src/LinkedCell/unittests/stubs/WorldStub.cpp	(revision 2ced6b357227c511512210e4f9802519b5ff478c)
+++ src/LinkedCell/unittests/stubs/WorldStub.cpp	(revision 2ced6b357227c511512210e4f9802519b5ff478c)
@@ -0,0 +1,58 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2011 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * WorldStub.cpp
+ *
+ *  Created on: Dec 22, 2011
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include "World.hpp"
+
+#include "CodePatterns/Observer/Channels.hpp"
+#include "CodePatterns/Observer/Notification.hpp"
+#include "CodePatterns/Observer/ObservedContainer_impl.hpp"
+#include "CodePatterns/Singleton_impl.hpp"
+
+#include "IdPool_impl.hpp"
+
+atom* World::_lastchangedatom = NULL;
+
+World::World() :
+    Observable("World"),
+    atoms(this),
+    selectedAtoms(this),
+    atomIdPool(0, 20, 100),
+    molecules(this),
+    selectedMolecules(this),
+    moleculeIdPool(0, 20,100)
+{
+  // observable stuff
+  Channels *OurChannel = new Channels;
+  NotificationChannels.insert( std::make_pair(this, OurChannel) );
+  // add instance for each notification type
+  OurChannel->addChannel(World::AtomInserted);
+  OurChannel->addChannel(World::AtomRemoved);
+}
+
+World::~World()
+{
+  // observable stuff
+  std::map<Observable *, Channels*>::iterator iter = NotificationChannels.find(this);
+  delete iter->second;
+  NotificationChannels.erase(iter);
+}
+
+CONSTRUCT_SINGLETON(World);
