Index: orxonox/trunk/src/lib/physics/physics_engine.cc
===================================================================
--- orxonox/trunk/src/lib/physics/physics_engine.cc	(revision 4555)
+++ orxonox/trunk/src/lib/physics/physics_engine.cc	(revision 4558)
@@ -1,3 +1,3 @@
-/* 
+/*
    orxonox - the future of 3D-vertical-scrollers
 
@@ -28,5 +28,5 @@
    \brief standard constructor
 */
-PhysicsEngine::PhysicsEngine() 
+PhysicsEngine::PhysicsEngine()
 {
    this->setClassName ("PhysicsEngine");
@@ -46,5 +46,5 @@
 
 */
-PhysicsEngine::~PhysicsEngine () 
+PhysicsEngine::~PhysicsEngine ()
 {
   PhysicsEngine::singletonRef = NULL;
@@ -71,5 +71,5 @@
 void PhysicsEngine::removePhysicsInterface(PhysicsInterface* physicsInterface)
 {
-  this->interfaces->remove(physicsInterface);  
+  this->interfaces->remove(physicsInterface);
 }
 
@@ -99,5 +99,5 @@
    \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
 */
@@ -110,5 +110,5 @@
    \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
 */
@@ -130,4 +130,6 @@
 void PhysicsEngine::tick(float dt)
 {
+  /* go through all the PhysicsInterface(s) and tick them,
+  meaning let the fields work */
   tIterator<PhysicsConnection>* itPC = this->connections->getIterator();
   PhysicsConnection* enumPC = itPC->nextElement();
@@ -135,9 +137,10 @@
     {
       enumPC->apply();
+
       enumPC = itPC->nextElement();
     }
   delete itPC;
 
-
+  /* actually tick all the PhysicsInterfaces. Move the objects around */
   tIterator<PhysicsInterface>* itPI = this->interfaces->getIterator();
   PhysicsInterface* enumPI = itPI->nextElement();
@@ -145,4 +148,5 @@
     {
       enumPI->tickPhys(dt);
+
       enumPI = itPI->nextElement();
     }
Index: orxonox/trunk/src/lib/physics/physics_engine.h
===================================================================
--- orxonox/trunk/src/lib/physics/physics_engine.h	(revision 4555)
+++ orxonox/trunk/src/lib/physics/physics_engine.h	(revision 4558)
@@ -1,6 +1,6 @@
-/*! 
+/*!
     \file physics_engine.h
-    \brief Definition of the ... singleton Class
-    
+    \brief Definition of the PhysicsEngine-singleton Class
+
 */
 
@@ -18,5 +18,5 @@
 
 
-//! A default singleton class.
+//! A class, that brings things into motion through Physics.
 class PhysicsEngine : public BaseObject {
 
@@ -41,9 +41,11 @@
  private:
   PhysicsEngine(void);
-  static PhysicsEngine* singletonRef;      //!< the singleton reference of the PhysicsEngine
 
-  tList<PhysicsInterface>* interfaces;     //!< a list of physically based objects
-  tList<Field>* fields;                    //!< a list of physicsl fields.
-  tList<PhysicsConnection>* connections;   //!< a list of physical connections
+ private:
+  static PhysicsEngine*         singletonRef;         //!< the singleton reference of the PhysicsEngine
+
+  tList<PhysicsInterface>*      interfaces;           //!< a list of physically based objects
+  tList<Field>*                 fields;               //!< a list of physicsl fields.
+  tList<PhysicsConnection>*     connections;          //!< a list of physical connections
 };
 
Index: orxonox/trunk/src/lib/physics/physics_interface.cc
===================================================================
--- orxonox/trunk/src/lib/physics/physics_interface.cc	(revision 4555)
+++ orxonox/trunk/src/lib/physics/physics_interface.cc	(revision 4558)
@@ -44,4 +44,5 @@
    this->massChildren = 0;
    this->forceSum = Vector(0, 0, 0);
+   this->bForceApplied = false;
 
    PhysicsEngine::getInstance()->addPhysicsInterface(this);
@@ -97,4 +98,5 @@
   PNode* tmp = (PNode*) objectPointer;
   this->forceSum += field->calcForce(tmp->getAbsCoor());
+  this->bForceApplied = true;
 }
 
@@ -107,7 +109,10 @@
   //  Vector acc = this->forceSum / ( this->massChildren + this->mass );
   PNode* coorTick =  (PNode*)(this->objectPointer);
-  if (coorTick)
-    coorTick->setRelCoor(coorTick->getRelCoor() + this->forceSum/this->mass * dt);
+  if (this->bForceApplied && coorTick)
+  {
+    coorTick->shiftCoor((coorTick->getVelocity()+ this->forceSum/this->mass * dt)*dt);
+
+    this->bForceApplied = false;
+  }
   this->forceSum = Vector(0,0,0);
-  // todo: introduce kinematics
 }
Index: orxonox/trunk/src/lib/physics/physics_interface.h
===================================================================
--- orxonox/trunk/src/lib/physics/physics_interface.h	(revision 4555)
+++ orxonox/trunk/src/lib/physics/physics_interface.h	(revision 4558)
@@ -48,8 +48,12 @@
  private:
   void*          objectPointer;         //!< A Pointer to the object we handel (actually should be this)
+
+
   float          mass;                  //!< Mass of this object
   float          massChildren;          //!< Sum of the masses of the children nodes
+
   Vector         forceSum;              //!< Total central force for this tick
   Quaternion     momentumSum;           //!< Total momentum in this tick
+  bool           bForceApplied;         //!< If a force was applied to this object.
 };
 
