Index: /orxonox/trunk/src/lib/graphics/particles/particle_system.cc
===================================================================
--- /orxonox/trunk/src/lib/graphics/particles/particle_system.cc	(revision 4377)
+++ /orxonox/trunk/src/lib/graphics/particles/particle_system.cc	(revision 4378)
@@ -56,4 +56,5 @@
   this->setType(type, 1);
   this->setColor(1.0,1.0,1.0,1.0, .5,.5,.5,.5, .0,.0,.0,.0);
+  this->setMass(1.0, 0.0);
   ParticleEngine::getInstance()->addSystem(this);
 }
@@ -182,4 +183,13 @@
 
 /**
+   \brief sets the initial mass of any particle
+*/
+void ParticleSystem::setMass(float mass, float randomMass)
+{
+  this->initialMass = mass;
+  this->randomInitialMass = randomMass;
+}
+
+/**
    \brief sets the conserve Factor of newly created particles
 */
@@ -231,9 +241,11 @@
   while (likely(tickPart != NULL))
     {
+      // applying force to the System.
+      tickPart->velocity += tickPart->extForce * tickPart->mass;
+
+      // rendering new position.
       tickPart->position = tickPart->position + tickPart->velocity * dt;
       tickPart->radius += tickPart->radiusIt * dt;
-
-      // applying force to the System.
-      tickPart->velocity += tickPart->extForce * tickPart->mass;
+      
       tickPart->extForce = Vector(0,0,0);
 
Index: /orxonox/trunk/src/lib/graphics/particles/particle_system.h
===================================================================
--- /orxonox/trunk/src/lib/graphics/particles/particle_system.h	(revision 4377)
+++ /orxonox/trunk/src/lib/graphics/particles/particle_system.h	(revision 4378)
@@ -74,5 +74,5 @@
 		 float randomStartRadius = 0.0, float randomEndRadius = 0.0);
   void setConserve(float conserve);
-  void setMass(float mass, float randomMass);
+  void setMass(float mass, float randomMass = 0.0);
 
   void setColor(GLfloat br, GLfloat bg, GLfloat bb, GLfloat ba,
@@ -97,5 +97,5 @@
   inline float getMass(void) const { return this->initialMass; };
 
-  void applyField(Field* field, float dt);
+  virtual void applyField(Field* field, float dt);
 
   void tick(float dt);
Index: /orxonox/trunk/src/lib/physics/physics_connection.cc
===================================================================
--- /orxonox/trunk/src/lib/physics/physics_connection.cc	(revision 4377)
+++ /orxonox/trunk/src/lib/physics/physics_connection.cc	(revision 4378)
@@ -26,6 +26,4 @@
 using namespace std;
 
-
-
 PhysicsConnection::PhysicsConnection(PhysicsInterface* subject, Field* field)
 {
@@ -53,13 +51,6 @@
 void PhysicsConnection::apply(const float& dt) const
 {
-  switch(this->type)
-    {
-    case PCON_PhysIField:
-      
-      break;
-
-    case PCON_PhysIPhysI:
+  if (likely(this->type == PCON_PhysIField))
       this->subject->applyField(this->field, dt);
-      break;
-    }
+  else ;
 }
Index: /orxonox/trunk/src/lib/physics/physics_engine.cc
===================================================================
--- /orxonox/trunk/src/lib/physics/physics_engine.cc	(revision 4377)
+++ /orxonox/trunk/src/lib/physics/physics_engine.cc	(revision 4378)
@@ -100,2 +100,18 @@
   delete iterator;
 }
+
+
+
+/**
+   \brief print out interesting debug information of this class
+*/
+void PhysicsEngine::debug(void) const
+{
+  PRINT(0)("====================================\n");
+  PRINT(0)("= Physics-Engine debug information =\n");
+  PRINT(0)("====================================\n");
+  PRINT(0)(" reference: %p\n", this);
+  PRINT(0)(" numbers of Connections: %d\n", this->connections->getSize());
+
+  PRINT(0)("==============================PHYS==\n");
+}
Index: /orxonox/trunk/src/lib/physics/physics_engine.h
===================================================================
--- /orxonox/trunk/src/lib/physics/physics_engine.h	(revision 4377)
+++ /orxonox/trunk/src/lib/physics/physics_engine.h	(revision 4378)
@@ -29,4 +29,6 @@
   void tick(float dt);
 
+  void debug(void) const;
+
  private:
   PhysicsEngine(void);
@@ -34,6 +36,4 @@
 
   tList<PhysicsConnection>* connections;
-
-  
 };
 
Index: /orxonox/trunk/src/subprojects/particles/particle_fun.cc
===================================================================
--- /orxonox/trunk/src/subprojects/particles/particle_fun.cc	(revision 4377)
+++ /orxonox/trunk/src/subprojects/particles/particle_fun.cc	(revision 4378)
@@ -20,4 +20,5 @@
 #include "physics_engine.h"
 #include "particle_engine.h"
+#include "fields.h"
 
 #define PINIT_EMISSION_RATE          50
@@ -32,9 +33,12 @@
 #define PINIT_PARTICLE_TYPE          PARTICLE_SPRITE
 #define PINIT_INHERIT_SPEED          0.0
-
+#define PINIT_PARTICLE_MASS          1.0
 
 void Framework::moduleInit(int argc, char** argv)
 {
   verbose = 5;
+  ParticleEngine::getInstance();
+  PhysicsEngine::getInstance();
+
 
   // Creating a Test Particle System
@@ -53,4 +57,9 @@
   // Add the Flow from the Emitter into the System
   ParticleEngine::getInstance()->addConnection(emitter, system);
+
+
+  Field* twirl = new Twirl();
+  twirl->setMagnitude(.1);
+  new PhysicsConnection(system, twirl);
 }
 
@@ -71,4 +80,5 @@
 void Framework::moduleTick(float dt)
 {
+  PhysicsEngine::getInstance()->tick(dt);
   ParticleEngine::getInstance()->tick(dt);
 }
@@ -85,5 +95,4 @@
   PRINT(0)("i - Particle-state Information\n\n");
   PRINT(0)("\n");
-
 }
 
