Index: /trunk/src/lib/coord/p_node.cc
===================================================================
--- /trunk/src/lib/coord/p_node.cc	(revision 5651)
+++ /trunk/src/lib/coord/p_node.cc	(revision 5652)
@@ -141,20 +141,20 @@
   static_cast<BaseObject*>(this)->loadParams(root);
 
-  LoadParam<PNode>(root, "rel-coor", this, &PNode::setRelCoor)
+  LoadParamNEW(root, "rel-coor", this, PNode, setRelCoor)
       .describe("Sets The relative position of the Node to its parent.");
 
-  LoadParam<PNode>(root, "abs-coor", this, &PNode::setAbsCoor)
+  LoadParamNEW(root, "abs-coor", this, PNode, setAbsCoor)
       .describe("Sets The absolute Position of the Node.");
 
-  LoadParam<PNode>(root, "rel-dir", this, &PNode::setRelDir)
+  LoadParamNEW(root, "rel-dir", this, PNode, setRelDir)
       .describe("Sets The relative rotation of the Node to its parent.");
 
-  LoadParam<PNode>(root, "abs-dir", this, &PNode::setAbsDir)
+  LoadParamNEW(root, "abs-dir", this, PNode, setAbsDir)
       .describe("Sets The absolute rotation of the Node.");
 
-  LoadParam<PNode>(root, "parent", this, &PNode::setParent)
+  LoadParamNEW(root, "parent", this, PNode, setParent)
       .describe("the Name of the Parent of this PNode");
 
-  LoadParam<PNode>(root, "parent-mode", this, &PNode::setParentMode)
+  LoadParamNEW(root, "parent-mode", this, PNode, setParentMode)
       .describe("the mode to connect this node to its parent ()");
 
Index: /trunk/src/lib/graphics/light.cc
===================================================================
--- /trunk/src/lib/graphics/light.cc	(revision 5651)
+++ /trunk/src/lib/graphics/light.cc	(revision 5652)
@@ -88,17 +88,17 @@
   static_cast<PNode*>(this)->loadParams(root);
 
-  LoadParam<Light>(root, "diffuse-color", this, &Light::setDiffuseColor)
+  LoadParamNEW(root, "diffuse-color", this, Light, setDiffuseColor)
       .describe("sets the diffuse color of the Light (red [0-1], green [0-1], blue [0-1])");
 
-  LoadParam<Light>(root, "specular-color", this, &Light::setSpecularColor)
+  LoadParamNEW(root, "specular-color", this, Light, setSpecularColor)
       .describe("sets the specular color of the Light (red [0-1], green [0-1], blue [0-1])");
 
-  LoadParam<Light>(root, "attenuation", this, &Light::setAttenuation)
+  LoadParamNEW(root, "attenuation", this, Light, setAttenuation)
       .describe("sets the Attenuation of the LightSource (constant Factor, linear Factor, quadratic Factor).");
 
-  LoadParam<Light>(root, "spot-direction", this, &Light::setSpotDirection)
+  LoadParamNEW(root, "spot-direction", this, Light, setSpotDirection)
       .describe("sets the Direction of the Spot");
 
-  LoadParam<Light>(root, "spot-cutoff", this, &Light::setSpotCutoff)
+  LoadParamNEW(root, "spot-cutoff", this, Light, setSpotCutoff)
       .describe("the cuttoff of the Spotlight");
 }
Index: /trunk/src/lib/graphics/render2D/element_2d.cc
===================================================================
--- /trunk/src/lib/graphics/render2D/element_2d.cc	(revision 5651)
+++ /trunk/src/lib/graphics/render2D/element_2d.cc	(revision 5652)
@@ -130,34 +130,34 @@
 {
   // ELEMENT2D-native settings.
-  LoadParam<Element2D>(root, "alignment", this, &Element2D::setAlignment)
+  LoadParamNEW(root, "alignment", this, Element2D, setAlignment)
       .describe("loads the alignment: (either: center, left, right or screen-center)");
 
-  LoadParam<Element2D>(root, "layer", this, &Element2D::setLayer)
+  LoadParamNEW(root, "layer", this, Element2D, setLayer)
       .describe("loads the layer onto which to project: (either: top, medium, bottom, below-all)");
 
-  LoadParam<Element2D>(root, "bind-node", this, &Element2D::setBindNode)
+  LoadParamNEW(root, "bind-node", this, Element2D, setBindNode)
       .describe("sets a node, this 2D-Element should be shown upon (name of the node)");
 
-  LoadParam<Element2D>(root, "visibility", this, &Element2D::setVisibility)
+  LoadParamNEW(root, "visibility", this, Element2D, setVisibility)
       .describe("if the Element is visible or not");
 
 
 // PNode-style:
-  LoadParam<Element2D>(root, "rel-coor", this, &Element2D::setRelCoor2D)
+  LoadParamNEW(root, "rel-coor", this, Element2D, setRelCoor2D)
       .describe("Sets The relative position of the Node to its parent.");
 
-  LoadParam<Element2D>(root, "abs-coor", this, &Element2D::setAbsCoor2D)
+  LoadParamNEW(root, "abs-coor", this, Element2D, setAbsCoor2D)
       .describe("Sets The absolute Position of the Node.");
 
-  LoadParam<Element2D>(root, "rel-dir", this, &Element2D::setRelDir2D)
+  LoadParamNEW(root, "rel-dir", this, Element2D, setRelDir2D)
       .describe("Sets The relative rotation of the Node to its parent.");
 
-  LoadParam<Element2D>(root, "abs-dir", this, &Element2D::setAbsDir2D)
+  LoadParamNEW(root, "abs-dir", this, Element2D, setAbsDir2D)
       .describe("Sets The absolute rotation of the Node.");
 
-  LoadParam<Element2D>(root, "parent", this, &Element2D::setParent2D)
+  LoadParamNEW(root, "parent", this, Element2D, setParent2D)
       .describe("the Name of the Parent of this Element2D");
 
-  LoadParam<Element2D>(root, "parent-mode", this, &Element2D::setParentMode2D)
+  LoadParamNEW(root, "parent-mode", this, Element2D, setParentMode2D)
       .describe("the mode to connect this node to its parent ()");
 
Index: /trunk/src/lib/gui/gl_gui/glmenu/glmenu_imagescreen.cc
===================================================================
--- /trunk/src/lib/gui/gl_gui/glmenu/glmenu_imagescreen.cc	(revision 5651)
+++ /trunk/src/lib/gui/gl_gui/glmenu/glmenu_imagescreen.cc	(revision 5652)
@@ -57,17 +57,17 @@
 void GLMenuImageScreen::loadParams(const TiXmlElement* root)
 {
-  LoadParam<GLMenuImageScreen>(root, "BackgroundImage", this, &GLMenuImageScreen::setBackgroundImage)
+  LoadParamNEW(root, "BackgroundImage", this, GLMenuImageScreen, setBackgroundImage)
     .describe("sets the image to load onto the loadscreen");
 
-  LoadParam<GLMenuImageScreen>(root, "BackgroundPS", this, &GLMenuImageScreen::setPosScale)
+  LoadParamNEW(root, "BackgroundPS", this, GLMenuImageScreen, setPosScale)
     .describe("The Position and Scale of the Background Image in %(0-1.0). PosX, PosY, SizeX, SizeY");
 
-  LoadParam<GLMenuImageScreen>(root, "BarImage", this, &GLMenuImageScreen::setBarImage)
+  LoadParamNEW(root, "BarImage", this, GLMenuImageScreen, setBarImage)
     .describe("sets the image of the LoadingBar");
 
-  LoadParam<GLMenuImageScreen>(root, "BarPS", this, &GLMenuImageScreen::setBarPosScale)
+  LoadParamNEW(root, "BarPS", this, GLMenuImageScreen, setBarPosScale)
     .describe("The Position and Scale of the Loading Bar in %(0-1.0). PosX, PosY, SizeX, SizeY");
 
-  LoadParam<GLMenuImageScreen>(root, "ElementCount", this, &GLMenuImageScreen::setMaximum)
+  LoadParamNEW(root, "ElementCount", this, GLMenuImageScreen, setMaximum)
     .describe("The Count of elements to load into the bar (this is only a maximum value)");
 }
@@ -123,4 +123,5 @@
 void GLMenuImageScreen::setPosScale(float offsetX, float offsetY, float scaleX, float scaleY)
 {
+  printf("IMG: %f %f %f %f\n", offsetX, offsetY,offsetX, offsetY);
   this->setPosition(offsetX, offsetY);
   this->setScale(scaleX, scaleY);
@@ -144,4 +145,6 @@
 void GLMenuImageScreen::setBarPosScale(float barX, float barY, float barW, float barH)
 {
+  printf("BAR: %f %f %f %f\n", barX, barY, barW, barH);
+
   this->barX = barX;
   this->barY = barY;
Index: /trunk/src/lib/lang/base_object.cc
===================================================================
--- /trunk/src/lib/lang/base_object.cc	(revision 5651)
+++ /trunk/src/lib/lang/base_object.cc	(revision 5652)
@@ -63,8 +63,5 @@
   // name setup
   LoadParamNEW(root, "name", this, BaseObject, setName)
-  //LoadParamBase(root, "name", this, ExecutorObjective<BaseObject>(&BaseObject::setName))
       .describe("the Name of the Object.");
-//  LoadParam<BaseObject>(root, "name", this, &BaseObject::setName)
-      //.describe("the name of the Object at hand");
 }
 
Index: /trunk/src/lib/particles/particle_emitter.cc
===================================================================
--- /trunk/src/lib/particles/particle_emitter.cc	(revision 5651)
+++ /trunk/src/lib/particles/particle_emitter.cc	(revision 5652)
@@ -22,4 +22,5 @@
 
 #include "load_param.h"
+#include "factory.h"
 #include "debug.h"
 #include "stdlibincl.h"
@@ -94,23 +95,23 @@
   static_cast<PNode*>(this)->loadParams(root);
 
-  LoadParam<ParticleEmitter>(root, "type", this, &ParticleEmitter::setType)
+  LoadParamNEW(root, "type", this, ParticleEmitter, setType)
     .describe("What type of emitter is this [dot, plane, cube, sphere].");
 
-  LoadParam<ParticleEmitter>(root, "size", this, &ParticleEmitter::setSize)
+  LoadParamNEW(root, "size", this, ParticleEmitter, setSize)
     .describe("How big the emitter is (no effect on dot-emitters)");
 
-  LoadParam<ParticleEmitter>(root, "rate", this, &ParticleEmitter::setEmissionRate)
+  LoadParamNEW(root, "rate", this, ParticleEmitter, setEmissionRate)
     .describe("How many particles should be emittet from this emitter");
 
-  LoadParam<ParticleEmitter>(root, "inherit-speed", this, &ParticleEmitter::setInheritSpeed)
+  LoadParamNEW(root, "inherit-speed", this, ParticleEmitter, setInheritSpeed)
     .describe("the extent, the speed of the emitter has on the particles");
 
-  LoadParam<ParticleEmitter>(root, "emission-velocity", this, &ParticleEmitter::setEmissionVelocity)
+  LoadParamNEW(root, "emission-velocity", this, ParticleEmitter, setEmissionVelocity)
     .describe("How fast the particles are emittet (their initial speed)");
 
-  LoadParam<ParticleEmitter>(root, "emission-momentum", this, &ParticleEmitter::setEmissionMomentum)
+  LoadParamNEW(root, "emission-momentum", this, ParticleEmitter, setEmissionMomentum)
       .describe("How fast the particles rotation is at emissiontime (their initial momentum)");
 
-  LoadParam<ParticleEmitter>(root, "spread", this, &ParticleEmitter::setSpread)
+  LoadParamNEW(root, "spread", this, ParticleEmitter, setSpread)
     .describe("The angle the particles are emitted from (angle, deviation)");
 
Index: /trunk/src/lib/particles/particle_system.cc
===================================================================
--- /trunk/src/lib/particles/particle_system.cc	(revision 5651)
+++ /trunk/src/lib/particles/particle_system.cc	(revision 5652)
@@ -25,5 +25,5 @@
 
 #include "load_param.h"
-#include "compiler.h"
+#include "factory.h"
 #include "material.h"
 #include "state.h"
@@ -119,15 +119,15 @@
   static_cast<PhysicsInterface*>(this)->loadParams(root);
 
-  LoadParam<ParticleSystem>(root, "max-count", this, &ParticleSystem::setMaxCount)
+  LoadParamNEW(root, "max-count", this, ParticleSystem, setMaxCount)
       .describe("the maximal count of Particles, that can be emitted into this system");
 
   //LoadParam<ParticleSystem>(root, "type", this, &ParticleSystem::setType);
-  LoadParam<ParticleSystem>(root, "life-span", this, &ParticleSystem::setLifeSpan)
+  LoadParamNEW(root, "life-span", this, ParticleSystem, setLifeSpan)
       .describe("sets the life-span of the Particles.");
 
-  LoadParam<ParticleSystem>(root, "conserve", this, &ParticleSystem::setConserve)
-      .describe("sets the Conserve facrot of the Particles (1.0: they keep all their energy, 0.0:they keep no energy)");
-
-  LoadParam<ParticleSystem>(root, "type", this, &ParticleSystem::setType)
+  LoadParamNEW(root, "conserve", this, ParticleSystem, setConserve)
+      .describe("sets the Conserve factor of the Particles (1.0: they keep all their energy, 0.0:they keep no energy)");
+
+  LoadParamNEW(root, "type", this, ParticleSystem, setType)
       .describe("sets the type of the Particles, (dot, spark, sprite or model)");
 
Index: /trunk/src/lib/physics/fields/field.cc
===================================================================
--- /trunk/src/lib/physics/fields/field.cc	(revision 5651)
+++ /trunk/src/lib/physics/fields/field.cc	(revision 5652)
@@ -60,8 +60,9 @@
   static_cast<PNode*>(this)->loadParams(root);
 
-  LoadParam<Field>(root, "magnitude", this, &Field::setMagnitude)
-      .describe("sets the magnitude of this Field");
+  LoadParamNEW(root, "magnitude", this, Field, setMagnitude)
+      .describe("sets the magnitude of this Field")
+      ->defaultValues(1, 1);
 
-  LoadParam<Field>(root, "attenuation", this, &Field::setAttenuation)
+  LoadParamNEW(root, "attenuation", this, Field, setAttenuation)
       .describe("sets the attenuation of this Field.");
 
Index: /trunk/src/lib/physics/physics_connection.cc
===================================================================
--- /trunk/src/lib/physics/physics_connection.cc	(revision 5651)
+++ /trunk/src/lib/physics/physics_connection.cc	(revision 5652)
@@ -52,8 +52,8 @@
   static_cast<BaseObject*>(this)->loadParams(root);
 
-  LoadParam<PhysicsConnection>(root, "subject", this, &PhysicsConnection::setSubject)
+  LoadParamNEW(root, "subject", this, PhysicsConnection, setSubject)
       .describe("set the subject by a name");
 
-  LoadParam<PhysicsConnection>(root, "field", this, &PhysicsConnection::setField)
+  LoadParamNEW(root, "field", this, PhysicsConnection, setField)
       .describe("set the field by name");
 
Index: /trunk/src/lib/physics/physics_engine.cc
===================================================================
--- /trunk/src/lib/physics/physics_engine.cc	(revision 5651)
+++ /trunk/src/lib/physics/physics_engine.cc	(revision 5652)
@@ -93,8 +93,8 @@
 void PhysicsEngine::loadParams(const TiXmlElement* root)
 {
-  LoadParam<PhysicsEngine>(root, "Fields", this, &PhysicsEngine::loadFields)
+  LoadParamXML(root, "Fields", this, PhysicsEngine, loadFields)
       .describe("loads a list of fields");
 
-  LoadParam<PhysicsEngine>(root, "Connections", this, &PhysicsEngine::loadConnections)
+  LoadParamXML(root, "Connections", this, PhysicsEngine, loadConnections)
       .describe("loads a list of fields");
 }
Index: /trunk/src/lib/shell/shell_command.cc
===================================================================
--- /trunk/src/lib/shell/shell_command.cc	(revision 5651)
+++ /trunk/src/lib/shell/shell_command.cc	(revision 5652)
@@ -74,7 +74,4 @@
 
 }
-
-
-
 
 /**
@@ -256,5 +253,5 @@
           if (!strcmp(enumCMD->getName(), inputSplits.getString(fktPos)))
           {
-            if (objectPointer == NULL && enumCMD->executor->getType() == Executor_Objective)
+            if (objectPointer == NULL && enumCMD->executor->getType() & Executor_Objective)
             {
               delete itCMD;
Index: /trunk/src/lib/util/executor/executor.h
===================================================================
--- /trunk/src/lib/util/executor/executor.h	(revision 5651)
+++ /trunk/src/lib/util/executor/executor.h	(revision 5652)
@@ -21,6 +21,8 @@
 //! an enumerator for the definition of the Type.
 typedef enum {
-  Executor_Objective   = 1,
-  Executor_Static      = 2,
+  Executor_Objective         = 0x00000001,
+  Executor_Static            = 0x00000002,
+
+  Executor_NoLoadString      = 0x00000010,
 } Executor_Type;
 
@@ -43,5 +45,5 @@
 
     /** @returns the Type of this Function (either static or objective) */
-    inline Executor_Type getType() const { return this->functorType; };
+    inline long getType() const { return this->functorType; };
     /** @returns the Count of Parameters this Executor takes */
     inline unsigned int getParamCount() const { return this->paramCount; };
@@ -56,7 +58,7 @@
 
   protected:
-    Executor_Type                    functorType;      //!< The type of Function we've got (either static or objective).
-    unsigned int                     paramCount;       //!< the count of parameters.
-    MultiType*                       defaultValue;     //!< Default Values.
+    long                        functorType;      //!< The type of Function we've got (either static or objective).
+    unsigned int                paramCount;       //!< the count of parameters.
+    MultiType*                  defaultValue;     //!< Default Values.
 };
 
@@ -196,5 +198,6 @@
 #define ExecutorExecute4(t1,t2,t3,t4) \
    else if (this->paramCount == 4 && this->defaultValue[0].getType() == t1##_PARAM && this->defaultValue[1].getType() == t2##_PARAM && this->defaultValue[2].getType() == t3##_PARAM && this->defaultValue[3].getType() == t4##_PARAM) \
-    EXECUTOREXECUTER(_4_##t1##_##t2##_##t3##_##t4)(t1##_FUNC(sub.getString(0), t1##_DEFGRAB(0)), t2##_FUNC(sub.getString(1), t2##_DEFGRAB(1)), t3##_FUNC(sub.getString(2), t3##_DEFGRAB(2)), t4##_FUNC(sub.getString(3), t4##_DEFGRAB(3)))
+    EXECUTOREXECUTER(_4_##t1##_##t2##_##t3##_##t4)(t1##_FUNC(sub.getString(0), t1##_DEFGRAB(0)), t2##_FUNC(sub.getString(1), t2##_DEFGRAB(1)), t3##_FUNC(sub.getString(2), t3##_DEFGRAB(2)), t4##_FUNC(sub.getString(3), t4##_DEFGRAB(3))) \
+
 
 //! execute-macro for functions with five parameters
@@ -258,5 +261,5 @@
     virtual void execute (BaseObject* object, const char* parameters)
     {
-      SubString sub(parameters, true);
+      SubString sub(parameters, ',');  /// FIXME ///
 //! FUNCTOR_LIST is the List of Executive Functions
 #define FUNCTOR_LIST(x) ExecutorExecute ## x
Index: /trunk/src/lib/util/executor/executor_specials.h
===================================================================
--- /trunk/src/lib/util/executor/executor_specials.h	(revision 5651)
+++ /trunk/src/lib/util/executor/executor_specials.h	(revision 5652)
@@ -38,4 +38,5 @@
 
       this->functionPointer = function;
+      this->functorType = Executor_Objective | Executor_NoLoadString;
     }
 
@@ -66,5 +67,5 @@
   private:
     /**
-     * used for the copy-constructor
+     * used for the copy-(Clone)-constructor
      */
     ExecutorXML() : Executor() { };
Index: /trunk/src/story_entities/campaign.cc
===================================================================
--- /trunk/src/story_entities/campaign.cc	(revision 5651)
+++ /trunk/src/story_entities/campaign.cc	(revision 5652)
@@ -75,9 +75,7 @@
   static_cast<BaseObject*>(this)->loadParams(root);
 
-  //LoadParam<Campaign>(root, "identifier", this, &Campaign::setStoryID)
   LoadParamNEW(root, "identifier", this, Campaign, setStoryID)
      .describe("A Unique Identifier for this Campaign");
 
-//  LoadParam<Campaign>(root, "WorldList", this, &Campaign::loadWorldListParams)
    LoadParamXML(root, "WorldList", this, Campaign, loadWorldListParams)
       .describe("A List of Worlds to be loaded in this Campaign");
Index: /trunk/src/story_entities/world.cc
===================================================================
--- /trunk/src/story_entities/world.cc	(revision 5651)
+++ /trunk/src/story_entities/world.cc	(revision 5652)
@@ -186,11 +186,11 @@
   PRINTF(4)("Creating a World\n");
 
-  LoadParam<World>(root, "identifier", this, &World::setStoryID)
+  LoadParamNEW(root, "identifier", this, World, setStoryID)
     .describe("Sets the StoryID of this world");
 
-  LoadParam<World>(root, "nextid", this, &World::setNextStoryID)
+  LoadParamNEW(root, "nextid", this, World, setNextStoryID)
     .describe("Sets the ID of the next world");
 
-  LoadParam<World>(root, "path", this, &World::setPath)
+  LoadParamNEW(root, "path", this, World, setPath)
     .describe("The Filename of this World (relative from the data-dir)");
 }
@@ -339,8 +339,8 @@
     //////////////////////////////
 
-    LoadParam<LightManager>(root, "LightManager", LightManager::getInstance(), &LightManager::loadParams);
-
-    LoadParam<ParticleEngine>(root, "ParticleEngine", ParticleEngine::getInstance(), &ParticleEngine::loadParams);
-    LoadParam<PhysicsEngine>(root, "PhysicsEngine", PhysicsEngine::getInstance(), &PhysicsEngine::loadParams);
+    LoadParamXML(root, "LightManager", LightManager::getInstance(), LightManager, loadParams);
+
+    LoadParamXML(root, "ParticleEngine", ParticleEngine::getInstance(), ParticleEngine, loadParams);
+    LoadParamXML(root, "PhysicsEngine", PhysicsEngine::getInstance(), PhysicsEngine, loadParams);
 
   // find Track
Index: /trunk/src/util/loading/load_param.cc
===================================================================
--- /trunk/src/util/loading/load_param.cc	(revision 5651)
+++ /trunk/src/util/loading/load_param.cc	(revision 5652)
@@ -110,4 +110,5 @@
 {
   this->loadString = grabParameter(root, paramName);
+  this->paramName = paramName;
   this->object = object;
   if (root != NULL)
@@ -127,10 +128,31 @@
   if (likely(this->executor != NULL))
   {
-   if (likely(this->object != NULL))
-     this->executor->execute(this->object, this->loadString);
-
+    printf("%s: %s", this->paramName, this->loadString);
+    if (likely(this->object != NULL && this->executor != NULL) &&
+        ( this->loadString != NULL ||
+         ((this->executor->getType() & Executor_NoLoadString) == Executor_NoLoadString)))
+    {
+      printf(" - exec");
+      this->executor->execute(this->object, this->loadString);
+    }
+    printf ("\n");
     delete this->executor;
   }
 
+}
+
+
+LoadParamBase* LoadParamBase::defaultValues(unsigned int count, ...)
+{
+  if (this == NULL)
+    return NULL;
+
+  va_list values;
+  va_start(values, count);
+
+  assert(executor != NULL);
+  this->executor->defaultValues(count, values);
+
+  return this;
 }
 
Index: /trunk/src/util/loading/load_param.h
===================================================================
--- /trunk/src/util/loading/load_param.h	(revision 5651)
+++ /trunk/src/util/loading/load_param.h	(revision 5652)
@@ -22,11 +22,6 @@
 #define _LOAD_PARAM_H
 
-#include "functor_list.h"
-
-#include "debug.h"
-
-#include "factory.h"
-#include "substring.h"
-#include "tinyxml.h"
+#include "base_object.h"
+
 #include "executor/executor.h"
 #include "executor/executor_specials.h"
@@ -74,6 +69,8 @@
 
   protected:
+    bool                     withLoadString;       //!< If we need the loadString to execute this.
     Executor*                executor;
     BaseObject*              object;
+    const char*              paramName;
 
     LoadClassDescription*    classDesc;            //!< The LoadClassDescription of this LoadParameter
Index: /trunk/src/world_entities/skybox.cc
===================================================================
--- /trunk/src/world_entities/skybox.cc	(revision 5651)
+++ /trunk/src/world_entities/skybox.cc	(revision 5652)
@@ -55,8 +55,8 @@
   static_cast<WorldEntity*>(this)->loadParams(root);
 
-  LoadParam<SkyBox>(root, "Materialset", this, &SkyBox::setTexture)
+  LoadParamNEW(root, "Materialset", this, SkyBox, setTexture)
       .describe("Sets the material on the SkyBox. The string must be the path relative to the data-dir, and without a trailing .jpg");
 
-  LoadParam<SkyBox>(root, "Size", this, &SkyBox::setSize)
+  LoadParamNEW(root, "Size", this, SkyBox, setSize)
       .describe("Sets the Size of the SkyBox (normally this should be 90% of the maximal viewing Distance).");
 }
Index: /trunk/src/world_entities/terrain.cc
===================================================================
--- /trunk/src/world_entities/terrain.cc	(revision 5651)
+++ /trunk/src/world_entities/terrain.cc	(revision 5652)
@@ -104,5 +104,5 @@
   static_cast<WorldEntity*>(this)->loadParams(root);
 
-  LoadParam<Terrain>(root, "vegetation", this, &Terrain::loadVegetation)
+  LoadParamNEW(root, "vegetation", this, Terrain, loadVegetation)
       .describe("the fileName of the vegetation, that should be loaded onto this terrain. (must be relative to the data-dir)") ;
 
Index: /trunk/src/world_entities/weapons/aim.cc
===================================================================
--- /trunk/src/world_entities/weapons/aim.cc	(revision 5651)
+++ /trunk/src/world_entities/weapons/aim.cc	(revision 5652)
@@ -70,11 +70,11 @@
   static_cast<PNode*>(this)->loadParams(root);
 
-  LoadParam<Aim>(root, "texture", this, &Aim::setTexture)
+  LoadParamNEW(root, "texture", this, Aim, setTexture)
       .describe("the texture-file to load onto the Aim");
 
-  LoadParam<Aim>(root, "size", this, &Aim::setSize)
+  LoadParamNEW(root, "size", this, Aim, setSize)
       .describe("the size of the Aim in Pixels");
 
-  LoadParam<Aim>(root, "rotation-speed", this, &Aim::setRotationSpeed)
+  LoadParamNEW(root, "rotation-speed", this, Aim, setRotationSpeed)
       .describe("the Speed with which the Aim should rotate");
 }
Index: /trunk/src/world_entities/weapons/crosshair.cc
===================================================================
--- /trunk/src/world_entities/weapons/crosshair.cc	(revision 5651)
+++ /trunk/src/world_entities/weapons/crosshair.cc	(revision 5652)
@@ -84,11 +84,11 @@
   static_cast<EventListener*>(this)->loadParams(root);
 
-  LoadParam<Crosshair>(root, "texture", this, &Crosshair::setTexture)
+  LoadParamNEW(root, "texture", this, Crosshair, setTexture)
       .describe("the texture-file to load onto the Crosshair");
 
-  LoadParam<Crosshair>(root, "size", this, &Crosshair::setSize)
+  LoadParamNEW(root, "size", this, Crosshair, setSize)
       .describe("the size of the Crosshair in Pixels");
 
-  LoadParam<Crosshair>(root, "rotation-speed", this, &Crosshair::setRotationSpeed)
+  LoadParamNEW(root, "rotation-speed", this, Crosshair, setRotationSpeed)
       .describe("the Speed with which the Crosshair should rotate");
 }
Index: /trunk/src/world_entities/weapons/weapon.cc
===================================================================
--- /trunk/src/world_entities/weapons/weapon.cc	(revision 5651)
+++ /trunk/src/world_entities/weapons/weapon.cc	(revision 5652)
@@ -109,14 +109,14 @@
   static_cast<WorldEntity*>(this)->loadParams(root);
 
-  LoadParam<Weapon>(root, "projectile", this, &Weapon::setProjectileType)
+  LoadParamNEW(root, "projectile", this, Weapon, setProjectileType)
       .describe("Sets the name of the Projectile to load onto the Entity");
 
-  LoadParam<Weapon>(root, "emission-point", this, &Weapon::setEmissionPoint)
+  LoadParamNEW(root, "emission-point", this, Weapon, setEmissionPoint)
       .describe("Sets the Point of emission of this weapon");
 
-  LoadParam<Weapon>(root, "state-duration", this, &Weapon::setStateDuration)
+  LoadParamNEW(root, "state-duration", this, Weapon, setStateDuration)
       .describe("Sets the duration of a given state (1: state-Name; 2: duration in seconds)");
 
-  LoadParam<Weapon>(root, "action-sound", this, &Weapon::setActionSound)
+  LoadParamNEW(root, "action-sound", this, Weapon, setActionSound)
       .describe("Sets a given sound to an action (1: action-Name; 2: name of the sound (relative to the Data-Path))");
 }
Index: /trunk/src/world_entities/weapons/weapon_manager.cc
===================================================================
--- /trunk/src/world_entities/weapons/weapon_manager.cc	(revision 5651)
+++ /trunk/src/world_entities/weapons/weapon_manager.cc	(revision 5652)
@@ -119,5 +119,5 @@
   static_cast<BaseObject*>(this)->loadParams(root);
 
-  LoadParam<WeaponManager>(root, "slot-count", this, &WeaponManager::setSlotCount)
+  LoadParamNEW(root, "slot-count", this, WeaponManager, setSlotCount)
       .describe("how many slots(cannons) the WeaponManager can handle");
 
Index: /trunk/src/world_entities/world_entity.cc
===================================================================
--- /trunk/src/world_entities/world_entity.cc	(revision 5651)
+++ /trunk/src/world_entities/world_entity.cc	(revision 5652)
@@ -76,6 +76,7 @@
 
   // Model Loading
-  LoadParam<WorldEntity>(root, "model", this, &WorldEntity::loadModel, false, NULL, 1.0f)
-      .describe("the fileName of the model, that should be loaded onto this world-entity. (must be relative to the data-dir)") ;
+  LoadParamNEW(root, "model", this, WorldEntity, loadModel)
+      .describe("the fileName of the model, that should be loaded onto this world-entity. (must be relative to the data-dir)")
+      ->defaultValues(2, NULL, 1.0f);
 
 }
