Index: orxonox/trunk/src/lib/graphics/particles/particle_system.cc
===================================================================
--- orxonox/trunk/src/lib/graphics/particles/particle_system.cc	(revision 4376)
+++ orxonox/trunk/src/lib/graphics/particles/particle_system.cc	(revision 4377)
@@ -289,6 +289,8 @@
 /** 
     \brief applies some force to a Particle.
+    \param field the Field to apply.
+    \param dt The time over which the field gets applied
  */
-void ParticleSystem::applyField(float dt, Field* field)
+void ParticleSystem::applyField(Field* field, float dt)
 {
   Particle* tickPart = particles;
Index: orxonox/trunk/src/lib/graphics/particles/particle_system.h
===================================================================
--- orxonox/trunk/src/lib/graphics/particles/particle_system.h	(revision 4376)
+++ orxonox/trunk/src/lib/graphics/particles/particle_system.h	(revision 4377)
@@ -8,4 +8,6 @@
 
 #include "base_object.h"
+#include "physics_interface.h"
+
 #include "vector.h"
 
@@ -55,5 +57,5 @@
 
 //! A class to handle particle Systems
-class ParticleSystem : public BaseObject {
+class ParticleSystem : public PhysicsInterface {
   friend class ParticleEmitter;
 
@@ -95,5 +97,5 @@
   inline float getMass(void) const { return this->initialMass; };
 
-  void applyField(float dt, Field* field);
+  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 4376)
+++ orxonox/trunk/src/lib/physics/physics_connection.cc	(revision 4377)
@@ -28,8 +28,8 @@
 
 
-PhysicsConnection::PhysicsConnection(ParticleSystem* particleSystem, Field* field)
+PhysicsConnection::PhysicsConnection(PhysicsInterface* subject, Field* field)
 {
-  this->type = PCON_ParticlesField;
-  this->particleSystem = particleSystem;
+  this->type = PCON_PhysIField;
+  this->subject = subject;
   this->field = field;
 
@@ -59,11 +59,6 @@
       break;
 
-    case PCON_ParticlesField:
-      this->particleSystem->applyField(dt, this->field);
-
-      break;
-      
     case PCON_PhysIPhysI:
-
+      this->subject->applyField(this->field, dt);
       break;
     }
Index: orxonox/trunk/src/lib/physics/physics_connection.h
===================================================================
--- orxonox/trunk/src/lib/physics/physics_connection.h	(revision 4376)
+++ orxonox/trunk/src/lib/physics/physics_connection.h	(revision 4377)
@@ -14,6 +14,5 @@
 //! An enumerator for different ConnectionTypes
 typedef enum PCON_Type { PCON_PhysIPhysI = 0,
-			 PCON_PhysIField = 1,
-			 PCON_ParticlesField = 2 };
+			 PCON_PhysIField = 1};
 
 
@@ -24,7 +23,6 @@
 
  public:
+  PhysicsConnection(PhysicsInterface* subject, Field* field);
   PhysicsConnection(PhysicsInterface* partnerOne, PhysicsInterface* partnerTwo);
-  PhysicsConnection(PhysicsInterface* subject, Field* field);
-  PhysicsConnection(ParticleSystem* particleSystem, Field* field);
 
   virtual ~PhysicsConnection();
@@ -38,6 +36,4 @@
   PhysicsInterface* partner2;        //!< The second partner of this Connection.
   
-  ParticleSystem* particleSystem;    //!< A ParticleSystem in this Connection
-  
   Field* field;                      //!< The field to connect either subject of ParticleSystem to.
 };
Index: orxonox/trunk/src/lib/physics/physics_interface.cc
===================================================================
--- orxonox/trunk/src/lib/physics/physics_interface.cc	(revision 4376)
+++ orxonox/trunk/src/lib/physics/physics_interface.cc	(revision 4377)
@@ -22,4 +22,5 @@
 #include "physics_interface.h"
 
+#include "field.h"
 #include "p_node.h"
 
@@ -84,7 +85,7 @@
 	
 	
-void PhysicsInterface::applyForce( Vector force )
+void PhysicsInterface::applyField(Field* field, float dt)
 {
-  this->forceSum += force;
+  //  this->forceSum += force;
 }
 
Index: orxonox/trunk/src/lib/physics/physics_interface.h
===================================================================
--- orxonox/trunk/src/lib/physics/physics_interface.h	(revision 4376)
+++ orxonox/trunk/src/lib/physics/physics_interface.h	(revision 4377)
@@ -8,4 +8,8 @@
 
 #include "vector.h"
+#include "base_object.h"
+
+// Forward Declaration
+class Field;
 
 //! A Physics interface
@@ -13,5 +17,6 @@
    here can be some longer description of this class
 */
-class PhysicsInterface {
+class PhysicsInterface : public BaseObject
+{
 
  public:
@@ -25,6 +30,6 @@
   inline float getTotalMass( void ) const { return mass + massChildren; };
 
-  virtual void applyForce( Vector force );					//!< Add a central force on this rigid body
-  virtual void tickPhys( float dt );						//!< Update kinematics, reset force sum
+  virtual void applyField(Field* field, float dt);
+  virtual void tickPhys( float dt );
 
  protected:
