Index: trunk/src/lib/graphics/graphics_engine.cc
===================================================================
--- trunk/src/lib/graphics/graphics_engine.cc	(revision 5083)
+++ trunk/src/lib/graphics/graphics_engine.cc	(revision 5084)
@@ -406,4 +406,15 @@
 
 /**
+ * updates everything that is to be updated in the GraphicsEngine
+ */
+void GraphicsEngine::update(float dt)
+{
+//  NullElement2D::getInstance()->update2D(dt);
+  NullElement2D::getInstance()->debug(0);
+
+}
+
+
+/**
  *  ticks the Text
  * @param dt the time passed
Index: trunk/src/lib/graphics/graphics_engine.h
===================================================================
--- trunk/src/lib/graphics/graphics_engine.h	(revision 5083)
+++ trunk/src/lib/graphics/graphics_engine.h	(revision 5084)
@@ -62,4 +62,5 @@
     static GLint viewPort[4];
 
+    void update(float dt);
     void tick(float dt);
     void draw() const;
Index: trunk/src/lib/graphics/render2D/element_2d.cc
===================================================================
--- trunk/src/lib/graphics/render2D/element_2d.cc	(revision 5083)
+++ trunk/src/lib/graphics/render2D/element_2d.cc	(revision 5084)
@@ -33,7 +33,7 @@
  * @todo this constructor is not jet implemented - do it
 */
-Element2D::Element2D ()
-{
-  this->init();
+Element2D::Element2D (Element2D* parent)
+{
+  this->init(parent);
 }
 
@@ -51,5 +51,5 @@
  * initializes a Element2D
  */
-void Element2D::init()
+void Element2D::init(Element2D* parent)
 {
   this->setClassID(CL_ELEMENT_2D, "Element2D");
@@ -60,8 +60,13 @@
   this->setAlignment(E2D_ALIGN_NONE);
   this->layer = E2D_TOP;
+
   this->setParentMode2D(E2D_PARENT_ALL);
-
+  this->children = new tList<Element2D>;
   this->bRelCoorChanged = true;
   this->bRelDirChanged = true;
+  if (parent == NULL)
+    this->parent = NULL;
+//  else
+  //  this->setParent2D(parent);
 
   Render2D::getInstance()->registerElement2D(this);
@@ -148,4 +153,6 @@
  * this sets the position of the Element on the screen.
  * Use this in the your tick function, if you want the element to be automatically positioned.
+ *
+ * @todo must be in update
  */
 void Element2D::positioning()
@@ -279,5 +286,5 @@
   if( likely(child->parent != NULL))
   {
-    PRINTF(4)("PNode::addChild() - reparenting node: removing it and adding it again\n");
+    PRINTF(4)("Element2D::addChild() - reparenting node: removing it and adding it again\n");
     child->parent->children->remove(child);
   }
@@ -414,5 +421,5 @@
     this->lastAbsCoordinate = this->absCoordinate;
 
-    PRINTF(5)("PNode::update - %s - (%f, %f, %f)\n", this->getName(), this->absCoordinate.x, this->absCoordinate.y, this->absCoordinate.z);
+    PRINTF(5)("Element2D::update - %s - (%f, %f, %f)\n", this->getName(), this->absCoordinate.x, this->absCoordinate.y, this->absCoordinate.z);
 
 
@@ -434,5 +441,4 @@
       /* update the current absCoordinate */
       this->prevRelCoordinate = this->relCoordinate;
-      //this->absCoordinate = this->parent->getAbsCoor2D();
       this->absCoordinate.x = this->parent->getAbsCoor2D().x + (this->relCoordinate.x*cos(this->parent->getAbsDir2D()) - this->relCoordinate.y * sin(this->parent->getAbsDir2D()));
       this->absCoordinate.y = this->parent->getAbsCoor2D().y + (this->relCoordinate.x*sin(this->parent->getAbsDir2D()) + this->relCoordinate.y * cos(this->parent->getAbsDir2D()));
@@ -443,5 +449,5 @@
   else
   {
-    PRINTF(4)("NullParent::update - (%f, %f, %f)\n", this->absCoordinate.x, this->absCoordinate.y, this->absCoordinate.z);
+    PRINTF(5)("Element2D::update - (%f, %f, %f)\n", this->absCoordinate.x, this->absCoordinate.y, this->absCoordinate.z);
     if (this->bRelCoorChanged)
       this->absCoordinate = this->relCoordinate;
Index: trunk/src/lib/graphics/render2D/element_2d.h
===================================================================
--- trunk/src/lib/graphics/render2D/element_2d.h	(revision 5083)
+++ trunk/src/lib/graphics/render2D/element_2d.h	(revision 5084)
@@ -2,4 +2,5 @@
  * @file element_2d.h
  * Definition of the 2D elements rendered on top through the GraphicsEngine
+ *
  * @todo reimplement it, so it looks just like PNode.
 */
@@ -62,8 +63,8 @@
 
   public:
-    Element2D();
+    Element2D(Element2D* parent = NULL);
     virtual ~Element2D();
 
-    void init();
+    void init(Element2D* parent = NULL);
     void loadParams(const TiXmlElement* root);
 
@@ -156,5 +157,4 @@
 
   private:
-    void init(Element2D* parent);
     /** tells the child that the parent's Coordinate has changed */
     inline void parentCoorChanged () { this->bRelCoorChanged = true; }
@@ -170,4 +170,5 @@
   protected:
     void positioning();
+    //void Element2D(NullElement2D* nullElem);
 
   protected:
@@ -184,7 +185,4 @@
 
 
-
-
-
   private:
     bool              bRelCoorChanged;    //!< If Relative Coordinate has changed since last time we checked
Index: trunk/src/story_entities/world.cc
===================================================================
--- trunk/src/story_entities/world.cc	(revision 5083)
+++ trunk/src/story_entities/world.cc	(revision 5084)
@@ -637,4 +637,5 @@
   NullParent::getInstance()->update (0.001f);
   NullParent::getInstance()->update (0.001f);
+
 }
 
@@ -887,4 +888,5 @@
   GarbageCollector::getInstance()->update();
   NullParent::getInstance()->update (this->dtS);
+  GraphicsEngine::getInstance()->update(this->dtS);
 
   SoundEngine::getInstance()->update();
