Index: /orxonox/branches/physics/src/story_entities/world.cc
===================================================================
--- /orxonox/branches/physics/src/story_entities/world.cc	(revision 4182)
+++ /orxonox/branches/physics/src/story_entities/world.cc	(revision 4183)
@@ -48,4 +48,6 @@
 
 #include "animation3d.h"
+#include "physics_engine.h"
+#include "gravity.h"
 
 #include "substring.h"
@@ -207,4 +209,5 @@
   TextEngine::getInstance()->flush();
 
+  delete PhysicsEngine::getInstance();
   delete AnimationPlayer::getInstance(); // this should be at the end of the unloading sequence.
   //delete garbagecollecor
@@ -255,4 +258,5 @@
 
   AnimationPlayer::getInstance(); // initializes the animationPlayer
+  PhysicsEngine::getInstance();
 
   this->localCamera = new Camera();
@@ -496,4 +500,8 @@
   emitter->setParent(this->localPlayer);
   
+  Gravity* gravity = new Gravity();
+  gravity->setMagnitude(0.001);
+  new PhysicsConnection(system, gravity);
+
   particleEngine->addConnection(emitter, system);
 }
@@ -1145,4 +1153,6 @@
 
       AnimationPlayer::getInstance()->tick(this->dtS);
+      PhysicsEngine::getInstance()->tick(this->dtS);
+
       particleEngine->tick(this->dtS);
     }
Index: /orxonox/branches/physics/src/util/physics/physics_connection.cc
===================================================================
--- /orxonox/branches/physics/src/util/physics/physics_connection.cc	(revision 4182)
+++ /orxonox/branches/physics/src/util/physics/physics_connection.cc	(revision 4183)
@@ -17,6 +17,6 @@
 
 #include "physics_connection.h"
-#include "field.h"
-#include "particle_system.h"
+
+#include "physics_engine.h"
 
 using namespace std;
@@ -29,4 +29,6 @@
   this->particleSystem = particleSystem;
   this->field = field;
+
+  PhysicsEngine::getInstance()->addConnection(this);
 }
 
@@ -38,5 +40,5 @@
 PhysicsConnection::~PhysicsConnection () 
 {
-
+  PhysicsEngine::getInstance()->removeConnection(this);
 }
 
Index: /orxonox/branches/physics/src/util/physics/physics_connection.h
===================================================================
--- /orxonox/branches/physics/src/util/physics/physics_connection.h	(revision 4182)
+++ /orxonox/branches/physics/src/util/physics/physics_connection.h	(revision 4183)
@@ -7,4 +7,8 @@
 #define _PHYSICS_CONNECTION_H
 
+#include "field.h"
+#include "particle_system.h"
+#include "i_physics.h"
+
 //! An enumerator for different ConnectionTypes
 typedef enum PCON_Type { PCON_IPhysIPhys = 0,
@@ -14,7 +18,4 @@
 
 // Forward Declaration
-class Field;
-class IPhysics;
-class ParticleSystem;
 
 //! A class that Handles Physical Connection between subjects
Index: /orxonox/branches/physics/src/util/physics/physics_engine.cc
===================================================================
--- /orxonox/branches/physics/src/util/physics/physics_engine.cc	(revision 4182)
+++ /orxonox/branches/physics/src/util/physics/physics_engine.cc	(revision 4183)
@@ -1,4 +1,2 @@
-
-
 /* 
    orxonox - the future of 3D-vertical-scrollers
@@ -16,9 +14,9 @@
 */
 
-#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_WORLD_ENTITY
+//#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_WORLD_ENTITY
 
 #include "physics_engine.h"
 
-#include "stdincl.h" // maybe
+#include "list.h"
 
 using namespace std;
@@ -27,11 +25,26 @@
 /**
    \brief standard constructor
-   \todo this constructor is not jet implemented - do it
 */
-PhysicsEngine::PhysicsEngine () 
+PhysicsEngine::PhysicsEngine() 
 {
    this->setClassName ("PhysicsEngine");
+
+   this->connections = new tList<PhysicsConnection>;
 }
 
+/**
+   \brief the singleton reference to this class
+*/
+PhysicsEngine* PhysicsEngine::singletonRef = NULL;
+
+/**
+   \returns a Pointer to this Class
+*/
+PhysicsEngine* PhysicsEngine::getInstance(void)
+{
+  if (!PhysicsEngine::singletonRef)
+    PhysicsEngine::singletonRef = new PhysicsEngine();
+  return PhysicsEngine::singletonRef;
+}
 
 /**
@@ -41,13 +54,48 @@
 PhysicsEngine::~PhysicsEngine () 
 {
-  // delete what has to be deleted here
+  PhysicsEngine::singletonRef = NULL;
 }
 
 /**
-   \brief nonsense - delete this method
-   \param realy nothing to give
-   \returns true or false - probably nothing?
+   \brief adds A Physical Connection to the List of Connections
+   \param connection the Connection to add
+   
+   Usually this is done through the constructor of PhysicshConnections
+*/
+void PhysicsEngine::addConnection(PhysicsConnection* connection)
+{
+  this->connections->add(connection);
+}
 
-   this is just to show the doxygen abilities (this for example is an extension for a long comment)
+/**
+   \brief removes A Physical Connection from the List of Connections
+   \param connection the Connection to remove
+   
+   Usually this is done through the destructor of PhysicsConnections
 */
-bool PhysicsEngine::doNonSense (int nothing) {}
+void PhysicsEngine::removeConnection(PhysicsConnection* connection)
+{
+  this->connections->remove(connection);
+}
+
+
+
+
+
+/**
+   \brief Steps through all the Connections and Ticks them
+   \param dt The time Passed in Seconds
+
+   This function brings a flow into the whole animation
+*/
+void PhysicsEngine::tick(float dt)
+{
+  tIterator<PhysicsConnection>* iterator = this->connections->getIterator();
+  PhysicsConnection* enumConn = iterator->nextElement();
+  while (enumConn)
+    {
+      enumConn->apply();
+      enumConn = iterator->nextElement();
+    }
+  delete iterator;
+}
Index: /orxonox/branches/physics/src/util/physics/physics_engine.h
===================================================================
--- /orxonox/branches/physics/src/util/physics/physics_engine.h	(revision 4182)
+++ /orxonox/branches/physics/src/util/physics/physics_engine.h	(revision 4183)
@@ -1,9 +1,6 @@
 /*! 
     \file physics_engine.h
-    \brief Definition of the proto class template, used quickly start work
-    \todo Example: this shows how to use simply add a Marker that here has to be done something.
-
-    The PhysicsEngine exists, to help you quikly getting the run for how to develop in orxonox.
-    It is an example for the CODING-CONVENTION, and a starting-point for every class.
+    \brief Definition of the ... singleton Class
+    
 */
 
@@ -12,27 +9,33 @@
 
 #include "base_object.h"
+#include "physics_connection.h"
+#include "field.h"
 
-// FORWARD DEFINITION \\
-class someClassWeNeed;
+// Forward Declaration
+template<class T> class tList;
 
 
-/*class Test;*/ /* forward definition of class Test (without including it here!)*/
-
-//! A default class that aids you to start creating a new class
-/**
-   here can be some longer description of this class
-*/
+//! A default singleton class.
 class PhysicsEngine : public BaseObject {
 
  public:
-  PhysicsEngine();
-  virtual ~PhysicsEngine();
+  static PhysicsEngine* getInstance(void);
+  virtual ~PhysicsEngine(void);
 
-  bool doNonSense (int nothing);
+  void addConnection(PhysicsConnection* connection);
+  void removeConnection(PhysicsConnection* connection);
+
+  void tick(float dt);
 
  private:
-  int nonSense;  //!< doxygen tag here like this for all the variables - delete this variable if you use this
+  PhysicsEngine(void);
+  static PhysicsEngine* singletonRef;
 
+  tList<PhysicsConnection>* connections;
+
+  
 };
 
+
+
 #endif /* _PHYSICS_ENGINE_H */
