Index: orxonox/trunk/src/Makefile.am
===================================================================
--- orxonox/trunk/src/Makefile.am	(revision 4729)
+++ orxonox/trunk/src/Makefile.am	(revision 4730)
@@ -153,5 +153,5 @@
 endif
 
-SUBDIRS = lib . $(SUB_PROGS) subprojects
+SUBDIRS = lib . $(SUB_PROGS)
 
 
Index: orxonox/trunk/src/Makefile.in
===================================================================
--- orxonox/trunk/src/Makefile.in	(revision 4729)
+++ orxonox/trunk/src/Makefile.in	(revision 4730)
@@ -391,5 +391,5 @@
 @SUB_PROJECTS_FALSE@SUB_PROGS = 
 @SUB_PROJECTS_TRUE@SUB_PROGS = subprojects
-SUBDIRS = lib . $(SUB_PROGS) subprojects
+SUBDIRS = lib . $(SUB_PROGS)
 all: all-recursive
 
Index: orxonox/trunk/src/lib/physics/Makefile.am
===================================================================
--- orxonox/trunk/src/lib/physics/Makefile.am	(revision 4729)
+++ orxonox/trunk/src/lib/physics/Makefile.am	(revision 4730)
@@ -2,20 +2,20 @@
 include $(MAINSRCDIR)/defs/include_paths.am
 
-noinst_LIBRARIES = libORXphysics.a 
+noinst_LIBRARIES = libORXphysics.a
 
 libORXphysics_a_SOURCES = physics_interface.cc \
-		       	  physics_connection.cc \
-		          physics_engine.cc \
-		          fields/field.cc \
-		          fields/gravity.cc \
-		          fields/point_gravity.cc \
-		          fields/twirl.cc
+                          physics_connection.cc \
+                          physics_engine.cc \
+                          fields/field.cc \
+                          fields/gravity.cc \
+                          fields/point_gravity.cc \
+                          fields/twirl.cc
 
 noinst_HEADERS= physics_interface.h \
-	        physics_connection.h \
-	        physics_engine.h \
-		fields/fields.h \
-	        fields/field.h \
-	        fields/gravity.h \
-	        fields/point_gravity.h \
-	        fields/twirl.h
+                physics_connection.h \
+                physics_engine.h \
+                fields/fields.h \
+                fields/field.h \
+                fields/gravity.h \
+                fields/point_gravity.h \
+                fields/twirl.h
Index: orxonox/trunk/src/lib/physics/Makefile.in
===================================================================
--- orxonox/trunk/src/lib/physics/Makefile.in	(revision 4729)
+++ orxonox/trunk/src/lib/physics/Makefile.in	(revision 4730)
@@ -187,21 +187,21 @@
 target_vendor = @target_vendor@
 MAINSRCDIR = ../..
-noinst_LIBRARIES = libORXphysics.a 
+noinst_LIBRARIES = libORXphysics.a
 libORXphysics_a_SOURCES = physics_interface.cc \
-		       	  physics_connection.cc \
-		          physics_engine.cc \
-		          fields/field.cc \
-		          fields/gravity.cc \
-		          fields/point_gravity.cc \
-		          fields/twirl.cc
+                          physics_connection.cc \
+                          physics_engine.cc \
+                          fields/field.cc \
+                          fields/gravity.cc \
+                          fields/point_gravity.cc \
+                          fields/twirl.cc
 
 noinst_HEADERS = physics_interface.h \
-	        physics_connection.h \
-	        physics_engine.h \
-		fields/fields.h \
-	        fields/field.h \
-	        fields/gravity.h \
-	        fields/point_gravity.h \
-	        fields/twirl.h
+                physics_connection.h \
+                physics_engine.h \
+                fields/fields.h \
+                fields/field.h \
+                fields/gravity.h \
+                fields/point_gravity.h \
+                fields/twirl.h
 
 all: all-am
Index: orxonox/trunk/src/lib/physics/fields/field.cc
===================================================================
--- orxonox/trunk/src/lib/physics/fields/field.cc	(revision 4729)
+++ orxonox/trunk/src/lib/physics/fields/field.cc	(revision 4730)
@@ -30,13 +30,4 @@
 {
   this->init();
-}
-
-/**
-  \param root The XML-element to load settings from
- */
-Field::Field(const TiXmlElement* root)
-{
-  this->init();
-  this->loadParams(root);
 }
 
Index: orxonox/trunk/src/lib/physics/fields/field.h
===================================================================
--- orxonox/trunk/src/lib/physics/fields/field.h	(revision 4729)
+++ orxonox/trunk/src/lib/physics/fields/field.h	(revision 4730)
@@ -36,5 +36,4 @@
  public:
   Field();
-  Field(const TiXmlElement* root);
   virtual ~Field();
 
Index: orxonox/trunk/src/lib/physics/fields/gravity.cc
===================================================================
--- orxonox/trunk/src/lib/physics/fields/gravity.cc	(revision 4729)
+++ orxonox/trunk/src/lib/physics/fields/gravity.cc	(revision 4730)
@@ -10,5 +10,5 @@
 
    ### File Specific:
-   main-programmer: ...
+   main-programmer: Benjamin Grauer
    co-programmer: ...
 */
@@ -53,5 +53,4 @@
 {
   static_cast<Field*>(this)->loadParams(root);
-
 }
 
Index: orxonox/trunk/src/lib/physics/physics_engine.cc
===================================================================
--- orxonox/trunk/src/lib/physics/physics_engine.cc	(revision 4729)
+++ orxonox/trunk/src/lib/physics/physics_engine.cc	(revision 4730)
@@ -21,6 +21,6 @@
 
 #include "list.h"
-#include "game_loader.h"
 #include "tinyxml.h"
+#include "factory.h"
 
 using namespace std;
@@ -30,5 +30,5 @@
    \brief standard constructor
 */
-PhysicsEngine::PhysicsEngine()
+PhysicsEngine::PhysicsEngine(void)
 {
   this->setClassID(CL_PHYSICS_ENGINE, "PhysicsEngine");
@@ -48,5 +48,5 @@
 
 */
-PhysicsEngine::~PhysicsEngine ()
+PhysicsEngine::~PhysicsEngine(void)
 {
   PhysicsEngine::singletonRef = NULL;
@@ -56,30 +56,31 @@
   \param root the XML-element to load settings from
  */
-void loadParams(const TiXmlElement* root)
-{
-  const TiXmlElement* element;
-
-  PRINTF(4)("Loading Physical Fields\n");
+void PhysicsEngine::loadParams(const TiXmlElement* root)
+{
+  const TiXmlElement* element = NULL;
+
+  PRINTF(0)("Loading Physical Fields\n");
   element = root->FirstChildElement("Fields");
-  {
-    element = element->FirstChildElement();
-    GameLoader::getInstance()->fabricate(element);
+  printf("PPPPPOOOOINNNTERRRR: %p\n", element);
+  element = element->FirstChildElement();
+  printf("PPPPPOOOOINNNTERRRR: %p\n", element);
+  while (element != NULL)
+  {
+    Factory::getFirst()->fabricate(element)->getName();
 
     element = element->NextSiblingElement();
   }
-
-  PRINTF(4)("Loading Physical Connections\n");
-  element = root->FirstChildElement("PhysicsConnections");
-  {
-    element = element->FirstChildElement();
-    GameLoader::getInstance()->fabricate(element);
+  element = NULL;
+
+  PRINTF(0)("Loading Physical Connections\n");
+  element = root->FirstChildElement("Connections");
+  element = element->FirstChildElement();
+  while (element != NULL)
+  {
+    Factory::getFirst()->fabricate(element);
 
     element = element->NextSiblingElement();
   }
-
-}
-
-
-
+}
 
 /**
@@ -260,4 +261,5 @@
   PRINT(0)(" reference: %p\n", this);
   PRINT(0)(" number of Interfaces: %d\n", this->interfaces->getSize());
+  PRINT(0)(" number of Fields: %d\n", this->fields->getSize());
   PRINT(0)(" number of Connections: %d\n", this->connections->getSize());
 
Index: orxonox/trunk/src/story_entities/world.cc
===================================================================
--- orxonox/trunk/src/story_entities/world.cc	(revision 4729)
+++ orxonox/trunk/src/story_entities/world.cc	(revision 4730)
@@ -415,4 +415,5 @@
 
     LoadParam<ParticleEngine>(root, "ParticleEngine", ParticleEngine::getInstance(), &ParticleEngine::loadParams);
+    LoadParam<PhysicsEngine>(root, "PhysicsEngine", PhysicsEngine::getInstance(), &PhysicsEngine::loadParams);
 
   // find Track
@@ -494,7 +495,5 @@
   ////////////
 
-  Field* gravity = new Gravity();
-  gravity->setMagnitude(30.0);
-
+  Gravity* test = new Gravity();
 
   // SYSTEM TRAILING THE PLAYER
@@ -525,5 +524,5 @@
   particleEngine->addConnection(emitter, system);
 
-  new PhysicsConnection(system, gravity);
+  //new PhysicsConnection(system, gravity);
   //    new PhysicsConnection(this->localPlayer, gravity);
 
@@ -552,11 +551,6 @@
 
 
-//   new PhysicsConnection(testEntity, gravity);
-
-  // printing out some debug stuff
-  NullParent::getInstance()->debug(0);
-  this->localPlayer->whatIs();
-  this->whatIs();
-  GraphicsEngine::getInstance()->whatIs();
+  PhysicsEngine::getInstance()->debug();
+
 }
 
Index: orxonox/trunk/src/util/loading/factory.cc
===================================================================
--- orxonox/trunk/src/util/loading/factory.cc	(revision 4729)
+++ orxonox/trunk/src/util/loading/factory.cc	(revision 4730)
@@ -35,8 +35,12 @@
   this->setName(factoryName);
 
+  if (Factory::first == NULL)
+    Factory::first = this;
   next = NULL;
 
   initialize();
 }
+
+Factory* Factory::first = NULL;
 
 /**
@@ -55,19 +59,9 @@
 
 /**
-   \brief generates the associated object from data
-*/
-BaseObject* Factory::fabricate(const TiXmlElement* data)
-{
-  return NULL;
-}
-
-/**
    \brief make this particular factory known to the LevelFactory
 */
 void Factory::initialize()
 {
-#ifdef IS_ORXONOX
   GameLoader::getInstance()->registerFactory( this);
-#endif /* IS_ORXONOX */
 }
 
Index: orxonox/trunk/src/util/loading/factory.h
===================================================================
--- orxonox/trunk/src/util/loading/factory.h	(revision 4729)
+++ orxonox/trunk/src/util/loading/factory.h	(revision 4730)
@@ -35,5 +35,5 @@
   \todo make factoryName a BaseObject-parameter. (else it would be redundant)
 */
-#define CREATE_FACTORY(CLASS_NAME) tFactory<CLASS_NAME>* global_##CLASS_NAME##Factory = new tFactory<CLASS_NAME>(#CLASS_NAME)
+#define CREATE_FACTORY(CLASS_NAME) tFactory<CLASS_NAME>* global_##CLASS_NAME##_Factory = new tFactory<CLASS_NAME>(#CLASS_NAME)
 
 //! The Factory is a loadable object handler
@@ -45,11 +45,14 @@
 
 
-  virtual BaseObject* fabricate(const TiXmlElement* root);
+  virtual BaseObject* fabricate(const TiXmlElement* root) = NULL;
   void initialize();
   void registerFactory( Factory* factory);
   /** \brief sets the Next factory in the list \param nextFactory the next factory */
   inline void setNext( Factory* nextFactory) { this->next = nextFactory; };
+  /** \returns the first factory */
+  static Factory* getFirst(void) { return Factory::first; };
   /** \returns the next factory */
   Factory* getNext(void) const { return this->next; };
+
 
  private:
@@ -69,5 +72,5 @@
 
   private:
-  BaseObject* fabricate(const TiXmlElement* root);
+  virtual BaseObject* fabricate(const TiXmlElement* root);
 };
 
@@ -79,5 +82,5 @@
 tFactory<T>::tFactory(const char* factoryName) : Factory(factoryName)
 {
-  PRINTF(5)("fileName: %s loadable\n", this->getName());
+  PRINTF(5)("Class: %s loadable\n", this->getName());
 }
 
@@ -90,5 +93,5 @@
 BaseObject* tFactory<T>::fabricate(const TiXmlElement* root)
 {
-  if(!strcmp(root->Value(), getName()))
+  if(!strcmp(root->Value(), this->getName()))
     return new T ( root);
   else if( getNext() != NULL)
