Index: orxonox/trunk/src/util/animation/animation.cc
===================================================================
--- orxonox/trunk/src/util/animation/animation.cc	(revision 4592)
+++ orxonox/trunk/src/util/animation/animation.cc	(revision 4597)
@@ -1,3 +1,3 @@
-/* 
+/*
    orxonox - the future of 3D-vertical-scrollers
 
@@ -22,9 +22,11 @@
 /**
    \brief creates a new Animation
-   
+
    This also adds the Animation automatically to the AnimationPlayer's list
 */
 Animation::Animation(void)
-{  
+{
+  this->setClassID(CL_ANIMATION, "Animation");
+
   // initialize a beginning KeyFrame, that will be deleted afterwards
   this->keyFrameCount = 0;
@@ -43,5 +45,5 @@
 /**
    \brief destructs the Animation
-   
+
    this also takes the animation out of the AnimationPlayer's list (if it is there)
 */
@@ -54,5 +56,5 @@
    \brief tells the AnimationPlayer, that we do not wish to  handle this animation
    automatically.
-   
+
    This means that it will not be ticked, and not be deleted with the AnimationPlayer
 */
Index: orxonox/trunk/src/util/animation/animation.h
===================================================================
--- orxonox/trunk/src/util/animation/animation.h	(revision 4592)
+++ orxonox/trunk/src/util/animation/animation.h	(revision 4597)
@@ -1,3 +1,3 @@
-/*! 
+/*!
     \file animation.h
     A Subclass for all animations in orxonox
@@ -31,13 +31,17 @@
    deprecated QUADRATIC
 */
-typedef enum ANIM_FUNCTION {ANIM_CONSTANT,
-			    ANIM_LINEAR,
-			    ANIM_SINE,
-			    ANIM_COSINE,
-			    ANIM_EXP,
-			    ANIM_NEG_EXP,
-			    ANIM_QUADRATIC,
-			    ANIM_RANDOM,
-			    ANIM_NULL};
+typedef enum ANIM_FUNCTION
+{
+  ANIM_CONSTANT,
+  ANIM_LINEAR,
+  ANIM_SINE,
+  ANIM_COSINE,
+  ANIM_EXP,
+  ANIM_NEG_EXP,
+  ANIM_QUADRATIC,
+  ANIM_RANDOM,
+  ANIM_NULL
+};
+
 #define ANIM_DEFAULT_FUNCTION ANIM_LINEAR      //!< A default function to choose from the above set
 
@@ -49,12 +53,15 @@
    ANIM_INF_DELETE deletes the animation. !! THIS IS DANGEROUS !! only do this with non-class variables
 */
-typedef enum ANIM_INFINITY {ANIM_INF_CONSTANT,
-			    ANIM_INF_REPLAY,
-			    ANIM_INF_REWIND,
-			    ANIM_INF_DELETE};//, ANIM_INF_LINEAR, ANIM_INF_PINGPONG;
+typedef enum ANIM_INFINITY
+{
+  ANIM_INF_CONSTANT,
+  ANIM_INF_REPLAY,
+  ANIM_INF_REWIND,
+  ANIM_INF_DELETE
+}; //, ANIM_INF_LINEAR, ANIM_INF_PINGPONG};
 
 //! A Superclass for describing an animation (all animations will be derived from this one)
 /** implement in subclasses:
- * 
+ *
  * De-/Constructor
  * Animation Functions
@@ -65,5 +72,5 @@
  * virtual rewind, to go to the first Keyframe. (other functions will call this one)
 */
-class Animation
+class Animation : public BaseObject
 {
  public:
Index: orxonox/trunk/src/util/animation/animation3d.cc
===================================================================
--- orxonox/trunk/src/util/animation/animation3d.cc	(revision 4592)
+++ orxonox/trunk/src/util/animation/animation3d.cc	(revision 4597)
@@ -51,5 +51,5 @@
 /**
    \brief standard deconstructor
-   
+
    deletes all the Keyframes
 */
@@ -89,5 +89,5 @@
 */
 void Animation3D::addKeyFrame(Vector position, Quaternion direction, float duration,
-			      ANIM_FUNCTION animFuncMov, ANIM_FUNCTION animFuncRot)
+                              ANIM_FUNCTION animFuncMov, ANIM_FUNCTION animFuncRot)
 {
   // some small check
@@ -101,5 +101,5 @@
 
   KeyFrame3D* tmpKeyFrame;
-    
+
   // when adding the first frame
   if (this->keyFrameCount == 0)
@@ -114,5 +114,5 @@
       // when adding the second frame
       if (this->currentKeyFrame == this->nextKeyFrame)
-	this->nextKeyFrame = tmpKeyFrame;
+        this->nextKeyFrame = tmpKeyFrame;
       this->keyFrameList->add(tmpKeyFrame);
     }
@@ -136,25 +136,25 @@
 {
   if (this->bRunning)
-    { 
+    {
       this->localTime += dt;
       if (localTime >= this->currentKeyFrame->duration)
-	{
-	  if (likely(this->keyFramesToPlay != 0))
-	    {
-	      if (unlikely(this->keyFramesToPlay > 0))
-		--this->keyFramesToPlay;
-	      // switching to the next Key-Frame
-	      this->localTime -= this->currentKeyFrame->duration;
-	      this->currentKeyFrame = this->nextKeyFrame;
-	      // checking, if we should still Play the animation
-	      if (this->currentKeyFrame == this->keyFrameList->lastElement())
-		this->handleInfinity();
-	      this->nextKeyFrame = this->keyFrameList->nextElement(this->currentKeyFrame);
-	      this->setAnimFuncMov(this->currentKeyFrame->animFuncMov);
-	      this->setAnimFuncRot(this->currentKeyFrame->animFuncRot);
-	    }
-	  else
-	    this->pause();
-	}      
+        {
+          if (likely(this->keyFramesToPlay != 0))
+            {
+              if (unlikely(this->keyFramesToPlay > 0))
+                --this->keyFramesToPlay;
+              // switching to the next Key-Frame
+              this->localTime -= this->currentKeyFrame->duration;
+              this->currentKeyFrame = this->nextKeyFrame;
+              // checking, if we should still Play the animation
+              if (this->currentKeyFrame == this->keyFrameList->lastElement())
+                this->handleInfinity();
+              this->nextKeyFrame = this->keyFrameList->nextElement(this->currentKeyFrame);
+              this->setAnimFuncMov(this->currentKeyFrame->animFuncMov);
+              this->setAnimFuncRot(this->currentKeyFrame->animFuncRot);
+            }
+          else
+            this->pause();
+        }
       /* now animate it */
       (this->*animFuncMov)(this->localTime);
@@ -257,5 +257,5 @@
   else
     v = (this->nextKeyFrame->position - this->currentKeyFrame->position) * (2.0 + sin( M_PI * (- timePassed /this->currentKeyFrame->duration)) )/ 2.0;
-  
+
   this->object->shiftCoor(v - this->currentKeyFrame->lastPosition);
   this->currentKeyFrame->lastPosition = v;
@@ -279,6 +279,6 @@
   /*
   this->object->setRelCoor( this->nextKeyFrame->position -
-			    (this->nextKeyFrame->position - this->currentKeyFrame->position) *
-			    (1.0 + cos( M_PI * timePassed / this->currentKeyFrame->duration))/2.0);
+                            (this->nextKeyFrame->position - this->currentKeyFrame->position) *
+                            (1.0 + cos( M_PI * timePassed / this->currentKeyFrame->duration))/2.0);
   */
 }
@@ -309,6 +309,6 @@
   /*
   this->object->setRelCoor( this->currentKeyFrame->position +
-			    (this->nextKeyFrame->position - this->currentKeyFrame->position) * 
-			    (1.0 - expf(- timePassed * expFactorMov)) );
+                            (this->nextKeyFrame->position - this->currentKeyFrame->position) *
+                            (1.0 - expf(- timePassed * expFactorMov)) );
   */
 }
@@ -334,8 +334,8 @@
 {
   /*
-  this->object->setRelCoor(this->currentKeyFrame->position + 
-			   (this->nextKeyFrame->position - this->currentKeyFrame->position) * (float)rand()/(float)RAND_MAX);
+  this->object->setRelCoor(this->currentKeyFrame->position +
+                           (this->nextKeyFrame->position - this->currentKeyFrame->position) * (float)rand()/(float)RAND_MAX);
   this->object->setRelDir(this->currentKeyFrame->direction +
-			  (this->nextKeyFrame->direction - this->currentKeyFrame->direction)* (float)rand()/(float)RAND_MAX);
+                          (this->nextKeyFrame->direction - this->currentKeyFrame->direction)* (float)rand()/(float)RAND_MAX);
   */
 }
@@ -401,7 +401,7 @@
 void Animation3D::rLinear(float timePassed) const
 {
-  this->object->setRelDir(quatSlerp( this->nextKeyFrame->direction, 
-				     this->currentKeyFrame->direction, 
-				     timePassed/this->currentKeyFrame->duration) );
+  this->object->setRelDir(quatSlerp( this->nextKeyFrame->direction,
+                                     this->currentKeyFrame->direction,
+                                     timePassed/this->currentKeyFrame->duration) );
 }
 
@@ -420,7 +420,7 @@
     scale = 1.0 - sin( M_PI * timePassed / this->currentKeyFrame->duration);
 
-  this->object->setRelDir(quatSlerp( this->nextKeyFrame->direction, 
-				     this->currentKeyFrame->direction, 
-				     scale) );
+  this->object->setRelDir(quatSlerp( this->nextKeyFrame->direction,
+                                     this->currentKeyFrame->direction,
+                                     scale) );
 }
 
@@ -435,7 +435,7 @@
 {
   float scale = cos(M_PI * timePassed / this->currentKeyFrame->duration);
-  this->object->setRelDir(quatSlerp( this->nextKeyFrame->direction, 
-				     this->currentKeyFrame->direction, 
-				     scale) );
+  this->object->setRelDir(quatSlerp( this->nextKeyFrame->direction,
+                                     this->currentKeyFrame->direction,
+                                     scale) );
 }
 
@@ -458,7 +458,7 @@
 {
   float scale = (1.0 - expf(- timePassed * expFactorRot));
-  this->object->setRelDir(quatSlerp( this->nextKeyFrame->direction, 
-				     this->currentKeyFrame->direction, 
-				     scale) );
+  this->object->setRelDir(quatSlerp( this->nextKeyFrame->direction,
+                                     this->currentKeyFrame->direction,
+                                     scale) );
 }
 
Index: orxonox/trunk/src/util/animation/animation3d.h
===================================================================
--- orxonox/trunk/src/util/animation/animation3d.h	(revision 4592)
+++ orxonox/trunk/src/util/animation/animation3d.h	(revision 4597)
@@ -1,3 +1,3 @@
-/*! 
+/*!
     \file animation3d.h
 */
@@ -33,5 +33,5 @@
   Animation3D(PNode* object);
   virtual ~Animation3D(void);
-    
+
   virtual void rewind(void);
 
@@ -40,5 +40,5 @@
 
   virtual void tick(float dt);
- 
+
  private:
   // animation functions
Index: orxonox/trunk/src/util/animation/animation_player.cc
===================================================================
--- orxonox/trunk/src/util/animation/animation_player.cc	(revision 4592)
+++ orxonox/trunk/src/util/animation/animation_player.cc	(revision 4597)
@@ -1,3 +1,3 @@
-/* 
+/*
    orxonox - the future of 3D-vertical-scrollers
 
@@ -26,10 +26,11 @@
    \brief standard constructor
 */
-AnimationPlayer::AnimationPlayer () 
+AnimationPlayer::AnimationPlayer ()
 {
-   this->setClassID(CL_ANIMATION_PLAYER, "AnimationPlayer");
+  this->setClassID(CL_ANIMATION_PLAYER, "AnimationPlayer");
+  this->setName("AnimationPlayer");
 
-   this->animationList = new tList<Animation>();
-   this->play();
+  this->animationList = new tList<Animation>();
+  this->play();
 }
 
@@ -43,9 +44,9 @@
 
    !! DANGER !! when unloading the AnimationPlayer no other Function
-   should reference any Animations, from the animationList because it 
-   automatically deletes them. 
+   should reference any Animations, from the animationList because it
+   automatically deletes them.
    This usually happens when unloading a World.
 */
-AnimationPlayer::~AnimationPlayer () 
+AnimationPlayer::~AnimationPlayer ()
 {
   // deleting the Animation List AND all the elements of the List
@@ -61,5 +62,5 @@
 
    when adding a Animation the Animation will too be deleted when
-   the AnimationPlayer gets deleted. Consider not adding it, or 
+   the AnimationPlayer gets deleted. Consider not adding it, or
    unadding it with animation->notHandled();
 */
@@ -80,5 +81,5 @@
 /**
    \brief empties the list AND deletes all the Animations
-*/ 
+*/
 void AnimationPlayer::flush(void)
 {
@@ -99,5 +100,5 @@
 
 /**
-   \brief Ticks all the animations in animationList 
+   \brief Ticks all the animations in animationList
    \param timePassed the time passed since the last tick.
 */
@@ -110,13 +111,13 @@
       Animation* anim = animIt->nextElement();
       while( anim != NULL)
-	{
-	  anim->tick(timePassed);
-	  if(unlikely(anim->ifDelete()))
-	  {
-	    this->animationList->remove(anim);
-	    delete anim;
-	  }
-	  anim = animIt->nextElement();
-	}
+        {
+          anim->tick(timePassed);
+          if(unlikely(anim->ifDelete()))
+          {
+            this->animationList->remove(anim);
+            delete anim;
+          }
+          anim = animIt->nextElement();
+        }
       delete animIt;
     }
@@ -150,8 +151,8 @@
     {
       if(anim->getBaseObject() == baseObject)
-	{
-	  delete animIt;
-	  return anim;
-	}
+        {
+          delete animIt;
+          return anim;
+        }
       anim = animIt->nextElement();
     }
Index: orxonox/trunk/src/util/animation/animation_player.h
===================================================================
--- orxonox/trunk/src/util/animation/animation_player.h	(revision 4592)
+++ orxonox/trunk/src/util/animation/animation_player.h	(revision 4597)
@@ -1,3 +1,3 @@
-/*! 
+/*!
     \file animation_player.h
 */
@@ -15,5 +15,5 @@
    <b>AnimationPlayer usage:</b> \n
 
-   <b>Initialisation</b>: AnimationPlayer::getInstance() does the trick this is 
+   <b>Initialisation</b>: AnimationPlayer::getInstance() does the trick this is
    usually done when initializing a world \n
    <b>Adding Animations</b>: create an Animation the following Way:
@@ -21,5 +21,5 @@
    \li set some parameters: also see the specific classes for more info
    \n
-   if you do not want a specific Animation to be handled by the AnimationPlayer, you have to 
+   if you do not want a specific Animation to be handled by the AnimationPlayer, you have to
    unload it explicitely with animation->doNotHandle();
    \n
Index: orxonox/trunk/src/util/animation/t_animation.h
===================================================================
--- orxonox/trunk/src/util/animation/t_animation.h	(revision 4592)
+++ orxonox/trunk/src/util/animation/t_animation.h	(revision 4597)
@@ -14,5 +14,5 @@
 */
 
-/*! 
+/*!
     \file t_animation.h
 */
@@ -80,5 +80,5 @@
 */
 template<class T>
-tAnimation<T>::tAnimation (T* object, void (T::*funcToAnim)(float)) 
+tAnimation<T>::tAnimation (T* object, void (T::*funcToAnim)(float))
 {
   // create a new List
@@ -100,9 +100,9 @@
 /**
    \brief standard deconstructor
-   
+
    deletes all the Keyframes
 */
 template<class T>
-tAnimation<T>::~tAnimation () 
+tAnimation<T>::~tAnimation ()
 {
   // delete all the KeyFrames
@@ -158,5 +158,5 @@
 
   KeyFrameF* tmpKeyFrame;
-    
+
   // when adding the first frame
   if (this->keyFrameCount == 0)
@@ -170,5 +170,5 @@
       // when adding the second frame
       if (this->currentKeyFrame == this->nextKeyFrame)
-	this->nextKeyFrame = tmpKeyFrame;
+        this->nextKeyFrame = tmpKeyFrame;
       this->keyFrameList->add(tmpKeyFrame);
     }
@@ -191,25 +191,25 @@
       this->localTime += dt;
       if (localTime >= this->currentKeyFrame->duration)
-	{
-	  if (likely(this->keyFramesToPlay != 0))
-	    {
-	      if (unlikely(this->keyFramesToPlay > 0))
-		--this->keyFramesToPlay;
-	      // switching to the next Key-Frame
-	      this->localTime -= this->currentKeyFrame->duration;
-	      
-	      this->currentKeyFrame = this->nextKeyFrame;
-	      // checking, if we should still Play the animation
-	      if (this->currentKeyFrame == this->keyFrameList->lastElement())
-		this->handleInfinity();
-	      this->nextKeyFrame = this->keyFrameList->nextElement(this->currentKeyFrame);
-	      
-	      printf("%p from:%f to:%f\n", this->currentKeyFrame,this->currentKeyFrame->value, this->nextKeyFrame->value);
-	      this->setAnimFunc(this->currentKeyFrame->animFunc);	  
-	    }
-	  else
-	    this->pause();
-	}
-      
+        {
+          if (likely(this->keyFramesToPlay != 0))
+            {
+              if (unlikely(this->keyFramesToPlay > 0))
+                --this->keyFramesToPlay;
+              // switching to the next Key-Frame
+              this->localTime -= this->currentKeyFrame->duration;
+
+              this->currentKeyFrame = this->nextKeyFrame;
+              // checking, if we should still Play the animation
+              if (this->currentKeyFrame == this->keyFrameList->lastElement())
+                this->handleInfinity();
+              this->nextKeyFrame = this->keyFrameList->nextElement(this->currentKeyFrame);
+
+              printf("%p from:%f to:%f\n", this->currentKeyFrame,this->currentKeyFrame->value, this->nextKeyFrame->value);
+              this->setAnimFunc(this->currentKeyFrame->animFunc);
+            }
+          else
+            this->pause();
+        }
+
       (this->object->*(funcToAnim))((this->*animFunc)(this->localTime));
     }
@@ -243,7 +243,7 @@
     case ANIM_NEG_EXP:
       {
-	this->animFunc = &tAnimation<T>::negExp;
-	expFactor =  - 1.0 / this->currentKeyFrame->duration * logf(DELTA_X);
-	break;
+        this->animFunc = &tAnimation<T>::negExp;
+        expFactor =  - 1.0 / this->currentKeyFrame->duration * logf(DELTA_X);
+        break;
       }
     case ANIM_QUADRATIC:
@@ -273,5 +273,5 @@
 */
 template<class T>
-float tAnimation<T>::linear(float timePassed) const 
+float tAnimation<T>::linear(float timePassed) const
 {
   return this->currentKeyFrame->value + (this->nextKeyFrame->value - this->currentKeyFrame->value)
@@ -287,7 +287,7 @@
 {
   if (timePassed * 2.0 < this->currentKeyFrame->duration)
-    return this->currentKeyFrame->value + (this->nextKeyFrame->value - this->currentKeyFrame->value) 
+    return this->currentKeyFrame->value + (this->nextKeyFrame->value - this->currentKeyFrame->value)
       * sin( M_PI * timePassed / this->currentKeyFrame->duration)/2;
-  else 
+  else
     return this->nextKeyFrame->value - (this->nextKeyFrame->value - this->currentKeyFrame->value)
       * sin( M_PI * (1.0 - timePassed / this->currentKeyFrame->duration))/2;
@@ -350,5 +350,5 @@
 float tAnimation<T>::random(float timePassed) const
 {
-  return this->currentKeyFrame->value + 
+  return this->currentKeyFrame->value +
     (this->nextKeyFrame->value - this->currentKeyFrame->value) *
     (float)rand()/(float)RAND_MAX;
Index: orxonox/trunk/src/util/garbage_collector.cc
===================================================================
--- orxonox/trunk/src/util/garbage_collector.cc	(revision 4592)
+++ orxonox/trunk/src/util/garbage_collector.cc	(revision 4597)
@@ -36,4 +36,6 @@
 {
    this->setClassID(CL_GARBAGE_COLLECTOR, "GarbageCollector");
+   this->setName("GarbageCollector");
+
    this->time = 0;
    this->delay = 1.5f; /* clean up all 5.0 seconds */
Index: orxonox/trunk/src/util/loading/factory.cc
===================================================================
--- orxonox/trunk/src/util/loading/factory.cc	(revision 4592)
+++ orxonox/trunk/src/util/loading/factory.cc	(revision 4597)
@@ -1,3 +1,3 @@
-/* 
+/*
    orxonox - the future of 3D-vertical-scrollers
 
@@ -21,5 +21,5 @@
 
 /*  --------------------------------------------------
- *		 Factory
+ *               Factory
  *   --------------------------------------------------
  */
@@ -27,13 +27,16 @@
 /**
    \brief constructor
-   
+
    set everything to zero and define factoryName
 */
 Factory::Factory (const char* factoryName)
 {
+  this->setClassID(CL_FACTORY, "Factory");
+  this->setName(factoryName);
+
   this->factoryName = NULL;
   this->setFactoryName(factoryName);
   next = NULL;
-  
+
   initialize();
 }
@@ -41,5 +44,5 @@
 /**
    \brief destructor
-   
+
    clear the Q
 */
Index: orxonox/trunk/src/util/loading/factory.h
===================================================================
--- orxonox/trunk/src/util/loading/factory.h	(revision 4592)
+++ orxonox/trunk/src/util/loading/factory.h	(revision 4597)
@@ -1,3 +1,3 @@
-/* 
+/*
    orxonox - the future of 3D-vertical-scrollers
 
@@ -14,5 +14,5 @@
 */
 
-/*! 
+/*!
   \file factory.h
   \brief A loadable object handler
@@ -27,19 +27,21 @@
 #include "tinyxml.h"
 #include "load_param.h"
+#include "base_object.h"
 #include "debug.h"
 
-/** 
+/**
     Creates a factory to a Loadable Class.
     this should be used at the beginning of all the Classes that should be loadable (in the cc-file)
+  \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
-class Factory {
+class Factory : public BaseObject {
 
  public:
   Factory (const char* factoryName = NULL);
   ~Factory ();
-  
+
 
   virtual BaseObject* fabricate(const TiXmlElement* root);
@@ -53,5 +55,5 @@
   /** \returns the next factory */
   Factory* getNext(void) const { return this->next; };
-	
+
  protected:
   char*         factoryName;          //!< the name of the factory
@@ -69,5 +71,5 @@
   tFactory(const char* factoryName);
   virtual ~tFactory();
-  
+
   private:
   BaseObject* fabricate(const TiXmlElement* root);
@@ -83,5 +85,5 @@
   PRINTF(5)("fileName: %s loadable\n", this->factoryName);
 }
-  
+
 
 template<class T>
@@ -90,11 +92,11 @@
 
 template<class T>
-BaseObject* tFactory<T>::fabricate(const TiXmlElement* root) 
-{ 
+BaseObject* tFactory<T>::fabricate(const TiXmlElement* root)
+{
   if(!strcmp(root->Value(), getFactoryName()))
     return new T ( root);
-  else if( getNext() != NULL) 
+  else if( getNext() != NULL)
     return getNext()->fabricate( root);
-  else 
+  else
     return NULL;
 }
Index: orxonox/trunk/src/util/loading/game_loader.cc
===================================================================
--- orxonox/trunk/src/util/loading/game_loader.cc	(revision 4592)
+++ orxonox/trunk/src/util/loading/game_loader.cc	(revision 4597)
@@ -1,5 +1,5 @@
 
 
-/* 
+/*
    orxonox - the future of 3D-vertical-scrollers
 
@@ -39,6 +39,8 @@
    \brief simple constructor
 */
-GameLoader::GameLoader () 
-{
+GameLoader::GameLoader ()
+{
+  this->setClassID(CL_GAME_LOADER, "GameLoader");
+  this->setName("GameLoader");
   first = NULL;
 }
@@ -110,28 +112,28 @@
   switch(campaignID)
     {
-      /* 
-	 Debug Level 0: Debug level used to test the base frame work.
-	 As you can see, all storyentity data is allocated before game
-	 start. the storyentity will load themselfs shortly before start
-	 through the StoryEntity::init() funtion.
+      /*
+         Debug Level 0: Debug level used to test the base frame work.
+         As you can see, all storyentity data is allocated before game
+         start. the storyentity will load themselfs shortly before start
+         through the StoryEntity::init() funtion.
       */
     case DEBUG_CAMPAIGN_0:
       {
-	Campaign* debugCampaign = new Campaign();
-
-	World* world0 = new World(DEBUG_WORLD_0);
-	world0->setNextStoryID(WORLD_ID_1);
-	debugCampaign->addEntity(world0, WORLD_ID_0);
-
-	World* world1 = new World(DEBUG_WORLD_1);
-	world1->setNextStoryID(WORLD_ID_2);
-	debugCampaign->addEntity(world1, WORLD_ID_1);
-
-	World* world2 = new World(DEBUG_WORLD_2);
-	world2->setNextStoryID(WORLD_ID_GAMEEND);
-	debugCampaign->addEntity(world2, WORLD_ID_2);
-
-	this->currentCampaign = debugCampaign;
-	break;
+        Campaign* debugCampaign = new Campaign();
+
+        World* world0 = new World(DEBUG_WORLD_0);
+        world0->setNextStoryID(WORLD_ID_1);
+        debugCampaign->addEntity(world0, WORLD_ID_0);
+
+        World* world1 = new World(DEBUG_WORLD_1);
+        world1->setNextStoryID(WORLD_ID_2);
+        debugCampaign->addEntity(world1, WORLD_ID_1);
+
+        World* world2 = new World(DEBUG_WORLD_2);
+        world2->setNextStoryID(WORLD_ID_GAMEEND);
+        debugCampaign->addEntity(world2, WORLD_ID_2);
+
+        this->currentCampaign = debugCampaign;
+        break;
       }
     }
@@ -139,7 +141,7 @@
 
 
-/** 
+/**
     \brief starts the current entity
-    \returns error code if this action has caused a error    
+    \returns error code if this action has caused a error
 */
 ErrorMessage GameLoader::start()
@@ -150,5 +152,5 @@
 
 
-/** 
+/**
     \brief stops the current entity
     \returns error code if this action has caused a error
@@ -168,5 +170,5 @@
 
 
-/** 
+/**
     \brief pause the current entity
     \returns error code if this action has caused a error
@@ -182,5 +184,5 @@
 
 
-/** 
+/**
     \brief resumes a pause
     \returns error code if this action has caused a error
@@ -218,5 +220,5 @@
      can load everything it needs into memory then.
   */
-  
+
   if( fileName == NULL)
     {
@@ -224,5 +226,5 @@
       return NULL;
     }
-  
+
   TiXmlDocument* XMLDoc = new TiXmlDocument( fileName);
   // load the campaign document
@@ -234,9 +236,9 @@
       return NULL;
     }
-	
+
   // check basic validity
   TiXmlElement* root = XMLDoc->RootElement();
   assert( root != NULL);
-	
+
   if( strcmp( root->Value(), "Campaign"))
     {
@@ -246,8 +248,8 @@
       return NULL;
     }
-	
+
   // construct campaign
   Campaign* c = new Campaign( root);
-	
+
   // free the XML data
   delete XMLDoc;
@@ -258,5 +260,5 @@
 
 /**
-   \brief handle keyboard commands 
+   \brief handle keyboard commands
    \param event the event to handle
 */
@@ -265,25 +267,25 @@
   if( event.type == KeyMapper::PEV_NEXT_WORLD)
     {
-      if( likely(event.bPressed)) 
-	{
-	  this->nextLevel();
-	}
+      if( likely(event.bPressed))
+        {
+          this->nextLevel();
+        }
     }
   else if( event.type == KeyMapper::PEV_PREVIOUS_WORLD)
     {
       if( likely(event.bPressed))
-	{
-	  this->previousLevel();
-	}
+        {
+          this->previousLevel();
+        }
     }
   else if( event.type == KeyMapper::PEV_PAUSE)
     {
       if( likely(event.bPressed))
-	{
-	  if(this->isPaused)
-	    this->resume();
-	  else
-	    this->pause();
-	}
+        {
+          if(this->isPaused)
+            this->resume();
+          else
+            this->pause();
+        }
     }
   else if( event.type == KeyMapper::PEV_QUIT)
@@ -322,10 +324,10 @@
 void GameLoader::registerFactory( Factory* factory)
 {
-	assert( factory != NULL);
-	
-	PRINTF(4)("Registered factory for '%s'\n", factory->getFactoryName());
-	
-	if( first == NULL) first = factory;
-	else first->registerFactory( factory);
+        assert( factory != NULL);
+
+        PRINTF(4)("Registered factory for '%s'\n", factory->getFactoryName());
+
+        if( first == NULL) first = factory;
+        else first->registerFactory( factory);
 }
 
@@ -338,5 +340,5 @@
 {
   assert( element != NULL);
-	
+
   if( first == NULL)
     {
@@ -344,18 +346,18 @@
       return NULL;
     }
-	
+
   if( element->Value() != NULL)
     {
       PRINTF(4)("Attempting fabrication of a '%s'\n", element->Value());
       BaseObject* b = first->fabricate( element);
-      if( b == NULL) 
-	PRINTF(2)("Failed to fabricate a '%s'\n", element->Value());
-      else 
-	PRINTF(4)("Successfully fabricated a '%s'\n", element->Value());
+      if( b == NULL)
+        PRINTF(2)("Failed to fabricate a '%s'\n", element->Value());
+      else
+        PRINTF(4)("Successfully fabricated a '%s'\n", element->Value());
       return b;
     }
-	
+
   PRINTF(2)("Fabricate failed, TiXmlElement did not contain a value\n");
-	
+
   return NULL;
 }
Index: orxonox/trunk/src/util/loading/load_param.cc
===================================================================
--- orxonox/trunk/src/util/loading/load_param.cc	(revision 4592)
+++ orxonox/trunk/src/util/loading/load_param.cc	(revision 4597)
@@ -1,3 +1,3 @@
-/* 
+/*
    orxonox - the future of 3D-vertical-scrollers
 
@@ -30,6 +30,7 @@
 */
 BaseLoadParam::BaseLoadParam(const TiXmlElement* root, BaseObject* object, const char* paramName,
-			     int paramCount, bool multi, ...)
-{
+                             int paramCount, bool multi, ...)
+{
+  this->setClassID(CL_LOAD_PARAM, "LoadParam");
   this->loadString = NULL;
 
@@ -39,14 +40,14 @@
     {
       if (likely(!multi))
-	this->loadString = grabParameter(root, paramName);
+        this->loadString = grabParameter(root, paramName);
       else
-	{
-	  if (!strcmp(root->Value(), paramName))
-	    {
-	      const TiXmlNode* val = root->FirstChild();
-	      if( val->ToText())
-		this->loadString = val->Value();
-	    }
-	}
+        {
+          if (!strcmp(root->Value(), paramName))
+            {
+              const TiXmlNode* val = root->FirstChild();
+              if( val->ToText())
+                this->loadString = val->Value();
+            }
+        }
     }
 
@@ -64,9 +65,9 @@
       va_start (types, multi);
       for(int i = 0; i < paramCount; i++)
-	{
-	  const char* tmpTypeName = va_arg (types, const char*);
-	  this->paramDesc->types[i] = new char[strlen(tmpTypeName)+1];
-	  strcpy(this->paramDesc->types[i], tmpTypeName);
-	}
+        {
+          const char* tmpTypeName = va_arg (types, const char*);
+          this->paramDesc->types[i] = new char[strlen(tmpTypeName)+1];
+          strcpy(this->paramDesc->types[i], tmpTypeName);
+        }
       va_end(types);
 
@@ -131,5 +132,5 @@
     {
       if (i > 0)
-	PRINT(3)(",");
+        PRINT(3)(",");
       PRINT(3)("%s", this->types[i]);
     }
@@ -194,8 +195,8 @@
     {
       if (!strcmp(enumClassDesc->className, className))
-	{
-	  delete iterator;
-	  return enumClassDesc;
-	}
+        {
+          delete iterator;
+          return enumClassDesc;
+        }
       enumClassDesc = iterator->nextElement();
     }
@@ -216,8 +217,8 @@
     {
       if (!strcmp(enumParamDesc->paramName, paramName))
-	{
-	  delete iterator;
-	  return enumParamDesc;
-	}
+        {
+          delete iterator;
+          return enumParamDesc;
+        }
       enumParamDesc = iterator->nextElement();
     }
@@ -243,8 +244,8 @@
       LoadParamDescription* enumParamDesc = paramIT->nextElement();
       while (enumParamDesc)
-	{
-	  enumParamDesc->print();
-	  enumParamDesc = paramIT->nextElement();
-	}
+        {
+          enumParamDesc->print();
+          enumParamDesc = paramIT->nextElement();
+        }
       delete paramIT;
 
@@ -267,12 +268,12 @@
   const TiXmlElement* element;
   const TiXmlNode* node;
-	
+
   if (root == NULL)
     return NULL;
   assert( parameterName != NULL);
-	
+
   element = root->FirstChildElement( parameterName);
   if( element == NULL) return NULL;
-	
+
   node = element->FirstChild();
   while( node != NULL)
Index: orxonox/trunk/src/util/loading/load_param.h
===================================================================
--- orxonox/trunk/src/util/loading/load_param.h	(revision 4592)
+++ orxonox/trunk/src/util/loading/load_param.h	(revision 4597)
@@ -22,4 +22,5 @@
 #define _LOAD_PARAM_H
 
+#include "base_object.h"
 #include "factory.h"
 #include "debug.h"
@@ -228,5 +229,5 @@
 
 //! abstract Base class for a Loadable parameter
-class BaseLoadParam
+class BaseLoadParam : public BaseObject
 {
  public:
Index: orxonox/trunk/src/util/object_manager.cc
===================================================================
--- orxonox/trunk/src/util/object_manager.cc	(revision 4592)
+++ orxonox/trunk/src/util/object_manager.cc	(revision 4597)
@@ -29,4 +29,5 @@
 {
   this->setClassID(CL_OBJECT_MANAGER, "ObjectManager");
+  this->setName("ObjectManager");
 
   this->managedObjectList = new tList<BaseObject>*[CL_NUMBER];
Index: orxonox/trunk/src/util/resource_manager.cc
===================================================================
--- orxonox/trunk/src/util/resource_manager.cc	(revision 4592)
+++ orxonox/trunk/src/util/resource_manager.cc	(revision 4597)
@@ -1,3 +1,3 @@
-/* 
+/*
    orxonox - the future of 3D-vertical-scrollers
 
@@ -47,11 +47,13 @@
    \brief standard constructor
 */
-ResourceManager::ResourceManager () 
-{
-   this->setClassID(CL_RESOURCE_MANAGER, "ResourceManager");
-   this->dataDir = NULL;
-   this->setDataDir("./");
-   this->imageDirs = new tList<char>();
-   this->resourceList = new tList<Resource>();
+ResourceManager::ResourceManager ()
+{
+  this->setClassID(CL_RESOURCE_MANAGER, "ResourceManager");
+  this->setName("ResourceManager");
+
+  this->dataDir = NULL;
+  this->setDataDir("./");
+  this->imageDirs = new tList<char>();
+  this->resourceList = new tList<Resource>();
 }
 
@@ -62,5 +64,5 @@
    \brief standard destructor
 */
-ResourceManager::~ResourceManager (void) 
+ResourceManager::~ResourceManager (void)
 {
   // deleting the Resources-List
@@ -106,5 +108,5 @@
 
 /**
-   \brief checks for the DataDirectory, by looking if 
+   \brief checks for the DataDirectory, by looking if
    \param fileInside is inisde??
 */
@@ -117,5 +119,5 @@
       return false;
     }
-  
+
   char* testFile = new char[strlen(this->dataDir)+strlen(fileInside)+1];
   sprintf(testFile, "%s%s", this->dataDir, fileInside);
@@ -141,13 +143,13 @@
       char* tmpDir = tmpImageDirs->nextElement();
       while(tmpDir)
-	{
-	  if (!strcmp(tmpDir, imageDir))
-	    {
-	      PRINTF(4)("Path %s already loaded\n", imageDir);
-	      delete tmpImageDirs;
-	      return true;
-	    }
-	  tmpDir = tmpImageDirs->nextElement();
-	}
+        {
+          if (!strcmp(tmpDir, imageDir))
+            {
+              PRINTF(4)("Path %s already loaded\n", imageDir);
+              delete tmpImageDirs;
+              return true;
+            }
+          tmpDir = tmpImageDirs->nextElement();
+        }
       delete tmpImageDirs;
 
@@ -185,5 +187,5 @@
   else if (!strcmp(fileName, "cube") ||
            !strcmp(fileName, "sphere") ||
-	   !strcmp(fileName, "plane") ||
+           !strcmp(fileName, "plane") ||
            !strcmp(fileName, "cylinder") ||
            !strcmp(fileName, "cone"))
@@ -203,5 +205,5 @@
 #endif /* NO_TEXT */
 #ifndef NO_TEXTURES
-  else 
+  else
     tmpType = IMAGE;
 #endif /* NO_TEXTURES */
@@ -221,5 +223,5 @@
 */
 void* ResourceManager::load(const char* fileName, ResourceType type, ResourcePriority prio,
-			    void* param1, void* param2, void* param3)
+                            void* param1, void* param2, void* param3)
 {
   // searching if the resource was loaded before.
@@ -230,5 +232,5 @@
       tmpResource->count++;
       if(tmpResource->prio < prio)
-	tmpResource->prio = prio;
+        tmpResource->prio = prio;
     }
   else
@@ -248,131 +250,131 @@
       // Checking for the type of resource \see ResourceType
       switch(type)
-	{
+        {
 #ifndef NO_MODEL
-	case OBJ:
-	  if (param1)
-	    tmpResource->modelSize = *(float*)param1;
-	  else
-	    tmpResource->modelSize = 1.0;
-
-	  if(ResourceManager::isFile(fullName))
-	    tmpResource->pointer = new OBJModel(fullName, tmpResource->modelSize);
-	  else
-	    {
-	      PRINTF(2)("Sorry, %s does not exist. Loading a cube-Model instead\n", fullName);
-	      tmpResource->pointer = ResourceManager::load("cube", PRIM, prio, &tmpResource->modelSize);
-	    }
-	  break;
-	case PRIM:
-	  if (param1)
-	    tmpResource->modelSize = *(float*)param1;
-	  else
-	    tmpResource->modelSize = 1.0;
-
-	  if (!strcmp(tmpResource->name, "cube"))
-	    tmpResource->pointer = new PrimitiveModel(PRIM_CUBE, tmpResource->modelSize);
-	  else if (!strcmp(tmpResource->name, "sphere"))
-	    tmpResource->pointer = new PrimitiveModel(PRIM_SPHERE, tmpResource->modelSize);
-	  else if (!strcmp(tmpResource->name, "plane"))
-	    tmpResource->pointer = new PrimitiveModel(PRIM_PLANE, tmpResource->modelSize);
-	  else if (!strcmp(tmpResource->name, "cylinder"))
-	    tmpResource->pointer = new PrimitiveModel(PRIM_CYLINDER, tmpResource->modelSize);
-	  else if (!strcmp(tmpResource->name, "cone"))
-	    tmpResource->pointer = new PrimitiveModel(PRIM_CONE, tmpResource->modelSize);
-	  break;
-	case MD2:
-	  if(ResourceManager::isFile(fullName))
-	    {
-	      if (param1)
-		{
-		  tmpResource->skinFileName = new char[strlen((const char*)param1)+1];
-		  strcpy(tmpResource->skinFileName, (const char*) param1);
-		}
-	      else
-		tmpResource->skinFileName = NULL;
-	      tmpResource->pointer = new MD2Data(fullName, tmpResource->skinFileName);
-	    }
-	      break;
+        case OBJ:
+          if (param1)
+            tmpResource->modelSize = *(float*)param1;
+          else
+            tmpResource->modelSize = 1.0;
+
+          if(ResourceManager::isFile(fullName))
+            tmpResource->pointer = new OBJModel(fullName, tmpResource->modelSize);
+          else
+            {
+              PRINTF(2)("Sorry, %s does not exist. Loading a cube-Model instead\n", fullName);
+              tmpResource->pointer = ResourceManager::load("cube", PRIM, prio, &tmpResource->modelSize);
+            }
+          break;
+        case PRIM:
+          if (param1)
+            tmpResource->modelSize = *(float*)param1;
+          else
+            tmpResource->modelSize = 1.0;
+
+          if (!strcmp(tmpResource->name, "cube"))
+            tmpResource->pointer = new PrimitiveModel(PRIM_CUBE, tmpResource->modelSize);
+          else if (!strcmp(tmpResource->name, "sphere"))
+            tmpResource->pointer = new PrimitiveModel(PRIM_SPHERE, tmpResource->modelSize);
+          else if (!strcmp(tmpResource->name, "plane"))
+            tmpResource->pointer = new PrimitiveModel(PRIM_PLANE, tmpResource->modelSize);
+          else if (!strcmp(tmpResource->name, "cylinder"))
+            tmpResource->pointer = new PrimitiveModel(PRIM_CYLINDER, tmpResource->modelSize);
+          else if (!strcmp(tmpResource->name, "cone"))
+            tmpResource->pointer = new PrimitiveModel(PRIM_CONE, tmpResource->modelSize);
+          break;
+        case MD2:
+          if(ResourceManager::isFile(fullName))
+            {
+              if (param1)
+                {
+                  tmpResource->skinFileName = new char[strlen((const char*)param1)+1];
+                  strcpy(tmpResource->skinFileName, (const char*) param1);
+                }
+              else
+                tmpResource->skinFileName = NULL;
+              tmpResource->pointer = new MD2Data(fullName, tmpResource->skinFileName);
+            }
+              break;
 #endif /* NO_MODEL */
 #ifndef NO_TEXT
-	case TTF:
-	    if (param1)
-	      tmpResource->ttfSize = *(int*)param1;
-	    else
-	      tmpResource->ttfSize = FONT_DEFAULT_SIZE;
-	    if (param2)
-	      {
-		Vector* tmpVec = (Vector*)param2;
-		tmpResource->ttfColorR = (int)tmpVec->x;
-		tmpResource->ttfColorG = (int)tmpVec->y;
-		tmpResource->ttfColorB = (int)tmpVec->z;
-	      }
-	    else
-	      {
-		tmpResource->ttfColorR = FONT_DEFAULT_COLOR_R;
-		tmpResource->ttfColorG = FONT_DEFAULT_COLOR_G;
-		tmpResource->ttfColorB = FONT_DEFAULT_COLOR_B;
-	      }
-	    
-	  if(isFile(fullName))
-	    tmpResource->pointer = new Font(fullName,
-					    tmpResource->ttfSize,
-					    tmpResource->ttfColorR,
-					    tmpResource->ttfColorG,
-					    tmpResource->ttfColorB);
-	  else
-	    PRINTF(2)("Sorry, %s does not exist. Not loading Font\n", fullName);
-	  break;
+        case TTF:
+            if (param1)
+              tmpResource->ttfSize = *(int*)param1;
+            else
+              tmpResource->ttfSize = FONT_DEFAULT_SIZE;
+            if (param2)
+              {
+                Vector* tmpVec = (Vector*)param2;
+                tmpResource->ttfColorR = (int)tmpVec->x;
+                tmpResource->ttfColorG = (int)tmpVec->y;
+                tmpResource->ttfColorB = (int)tmpVec->z;
+              }
+            else
+              {
+                tmpResource->ttfColorR = FONT_DEFAULT_COLOR_R;
+                tmpResource->ttfColorG = FONT_DEFAULT_COLOR_G;
+                tmpResource->ttfColorB = FONT_DEFAULT_COLOR_B;
+              }
+
+          if(isFile(fullName))
+            tmpResource->pointer = new Font(fullName,
+                                            tmpResource->ttfSize,
+                                            tmpResource->ttfColorR,
+                                            tmpResource->ttfColorG,
+                                            tmpResource->ttfColorB);
+          else
+            PRINTF(2)("Sorry, %s does not exist. Not loading Font\n", fullName);
+          break;
 #endif /* NO_TEXT */
 #ifndef NO_AUDIO
-	case WAV:
-	  if(isFile(fullName))
-	    tmpResource->pointer = new SoundBuffer(fullName);
-	  break;
+        case WAV:
+          if(isFile(fullName))
+            tmpResource->pointer = new SoundBuffer(fullName);
+          break;
 #endif /* NO_AUDIO */
 #ifndef NO_TEXTURES
-	case IMAGE:
-	  if(isFile(fullName))
-	    {
-	      PRINTF(4)("Image %s resides to %s\n", fileName, fullName);
-	      tmpResource->pointer = new Texture(fullName);
-	    }
-	  else
-	    {
-	      tIterator<char>* iterator = imageDirs->getIterator();
-	      tmpDir = iterator->nextElement();
-	      //tmpDir = imageDirs->enumerate();
-	      while(tmpDir)
-		{
-		  char* imgName = new char[strlen(tmpDir)+strlen(fileName)+1];
-		  sprintf(imgName, "%s%s", tmpDir, fileName);
-		  if(isFile(imgName))
-		    {
-		      PRINTF(4)("Image %s resides to %s\n", fileName, imgName);
-		      tmpResource->pointer = new Texture(imgName);
-		      delete []imgName;
-		      break;
-		    }
-		  delete []imgName;
-		  tmpDir = iterator->nextElement();
-		}
-	      delete iterator;
-	    }
-	  if(!tmpResource)
-	     PRINTF(2)("!!Image %s not Found!!\n", fileName);
-	  break;
+        case IMAGE:
+          if(isFile(fullName))
+            {
+              PRINTF(4)("Image %s resides to %s\n", fileName, fullName);
+              tmpResource->pointer = new Texture(fullName);
+            }
+          else
+            {
+              tIterator<char>* iterator = imageDirs->getIterator();
+              tmpDir = iterator->nextElement();
+              //tmpDir = imageDirs->enumerate();
+              while(tmpDir)
+                {
+                  char* imgName = new char[strlen(tmpDir)+strlen(fileName)+1];
+                  sprintf(imgName, "%s%s", tmpDir, fileName);
+                  if(isFile(imgName))
+                    {
+                      PRINTF(4)("Image %s resides to %s\n", fileName, imgName);
+                      tmpResource->pointer = new Texture(imgName);
+                      delete []imgName;
+                      break;
+                    }
+                  delete []imgName;
+                  tmpDir = iterator->nextElement();
+                }
+              delete iterator;
+            }
+          if(!tmpResource)
+             PRINTF(2)("!!Image %s not Found!!\n", fileName);
+          break;
 #endif /* NO_TEXTURES */
-	default:
-	  tmpResource->pointer = NULL;
-	  PRINTF(1)("No type found for %s.\n   !!This should not happen unless the Type is not supported yet.!!\n", tmpResource->name);
-	  break;
-	}
+        default:
+          tmpResource->pointer = NULL;
+          PRINTF(1)("No type found for %s.\n   !!This should not happen unless the Type is not supported yet.!!\n", tmpResource->name);
+          break;
+        }
       if (tmpResource->pointer)
-	this->resourceList->add(tmpResource);
+        this->resourceList->add(tmpResource);
       delete []fullName;
     }
   if (tmpResource->pointer)
     return tmpResource->pointer;
-  else 
+  else
     {
       PRINTF(2)("Resource %s could not be loaded\n", fileName);
@@ -413,44 +415,44 @@
     {
       if (resource->count <= 0)
-	{
-	  // deleting the Resource
-	  switch(resource->type)
-	    {
+        {
+          // deleting the Resource
+          switch(resource->type)
+            {
 #ifndef NO_MODEL
-	    case OBJ:
-	    case PRIM:
-	      delete (Model*)resource->pointer;
-	      break;
-	    case MD2:
-	      delete (MD2Data*)resource->pointer;
-	      break;
+            case OBJ:
+            case PRIM:
+              delete (Model*)resource->pointer;
+              break;
+            case MD2:
+              delete (MD2Data*)resource->pointer;
+              break;
 #endif /* NO_MODEL */
 #ifndef NO_AUDIO
-	    case WAV:
-	      delete (SoundBuffer*)resource->pointer;
-	      break;
+            case WAV:
+              delete (SoundBuffer*)resource->pointer;
+              break;
 #endif /* NO_AUDIO */
 #ifndef NO_TEXT
-	    case TTF:
-	      delete (Font*)resource->pointer;
-	      break;
+            case TTF:
+              delete (Font*)resource->pointer;
+              break;
 #endif /* NO_TEXT */
 #ifndef NO_TEXTURES
-	    case IMAGE:
-	      delete (Texture*)resource->pointer;
-	      break;
+            case IMAGE:
+              delete (Texture*)resource->pointer;
+              break;
 #endif /* NO_TEXTURES */
-	    default:
-	      PRINTF(1)("NOT YET IMPLEMENTED !!FIX FIX!!\n");
-	      return false;
-	      break;
-	    }
-	  // deleting the List Entry:
-	  PRINTF(4)("Resource %s safely removed.\n", resource->name);
-	  delete []resource->name;
-	  this->resourceList->remove(resource);
-	}
+            default:
+              PRINTF(1)("NOT YET IMPLEMENTED !!FIX FIX!!\n");
+              return false;
+              break;
+            }
+          // deleting the List Entry:
+          PRINTF(4)("Resource %s safely removed.\n", resource->name);
+          delete []resource->name;
+          this->resourceList->remove(resource);
+        }
       else
-	PRINTF(4)("Resource %s not removed, because there are still %d References to it.\n", resource->name, resource->count);
+        PRINTF(4)("Resource %s not removed, because there are still %d References to it.\n", resource->name, resource->count);
     }
   else
@@ -471,9 +473,9 @@
     {
       if (enumRes->prio <= prio)
-	if (enumRes->count == 0)
-	  unload(enumRes, prio);
-	else
-	  PRINTF(2)("unable to unload %s because there are still %d references to it\n",
-		   enumRes->name, enumRes->count);
+        if (enumRes->count == 0)
+          unload(enumRes, prio);
+        else
+          PRINTF(2)("unable to unload %s because there are still %d references to it\n",
+                   enumRes->name, enumRes->count);
       //enumRes = resourceList->nextElement();
       enumRes = iterator->nextElement();
@@ -492,5 +494,5 @@
 */
 Resource* ResourceManager::locateResourceByInfo(const char* fileName, ResourceType type,
-						void* param1, void* param2, void* param3)
+                                                void* param1, void* param2, void* param3)
 {
   //  Resource* enumRes = resourceList->enumerate();
@@ -500,67 +502,67 @@
     {
       if (enumRes->type == type && !strcmp(fileName, enumRes->name))
-	{
-	  bool match = false;
-	  bool subMatch = false;
-
-	  switch (type)
-	    {
+        {
+          bool match = false;
+          bool subMatch = false;
+
+          switch (type)
+            {
 #ifndef NO_MODEL
-	    case PRIM:
-	    case OBJ:
-	      if (!param1)
-		{
-		  if (enumRes->modelSize == 1.0)
-		    match = true;
-		}
-	      else if (enumRes->modelSize == *(float*)param1)
-		match = true;
-	      break;
-	    case MD2:
-	      if (!param1)
-		{
-		  if (enumRes->skinFileName == NULL)
-		    match = true;
-		}
-	      else if (!strcmp(enumRes->skinFileName, (const char*) param1))
-		match = true;
-	      break;
+            case PRIM:
+            case OBJ:
+              if (!param1)
+                {
+                  if (enumRes->modelSize == 1.0)
+                    match = true;
+                }
+              else if (enumRes->modelSize == *(float*)param1)
+                match = true;
+              break;
+            case MD2:
+              if (!param1)
+                {
+                  if (enumRes->skinFileName == NULL)
+                    match = true;
+                }
+              else if (!strcmp(enumRes->skinFileName, (const char*) param1))
+                match = true;
+              break;
 #endif /* NO_MODEL */
 #ifndef NO_TEXT
-	    case TTF:
-	      if (!param1)
-		{
-		  if (enumRes->ttfSize == FONT_DEFAULT_SIZE)
-		    subMatch = true;
-		}
-	      else if (enumRes->modelSize =- *(int*)param1)
-		subMatch = true;
-	      if(subMatch)
-		{
-		  Vector* tmpVec = (Vector*)param2;
-		  if (!param2)
-		    {
-		      if(enumRes->ttfColorR == FONT_DEFAULT_COLOR_R &&
-			 enumRes->ttfColorG == FONT_DEFAULT_COLOR_G &&
-			 enumRes->ttfColorB == FONT_DEFAULT_COLOR_B )
-			match = true;
-		    }
-		  else if (enumRes->ttfColorR == (int)tmpVec->x &&
-			   enumRes->ttfColorG == (int)tmpVec->y &&
-			   enumRes->ttfColorB == (int)tmpVec->z )
-		    match = true;
-		}
-	      break;
+            case TTF:
+              if (!param1)
+                {
+                  if (enumRes->ttfSize == FONT_DEFAULT_SIZE)
+                    subMatch = true;
+                }
+              else if (enumRes->modelSize =- *(int*)param1)
+                subMatch = true;
+              if(subMatch)
+                {
+                  Vector* tmpVec = (Vector*)param2;
+                  if (!param2)
+                    {
+                      if(enumRes->ttfColorR == FONT_DEFAULT_COLOR_R &&
+                         enumRes->ttfColorG == FONT_DEFAULT_COLOR_G &&
+                         enumRes->ttfColorB == FONT_DEFAULT_COLOR_B )
+                        match = true;
+                    }
+                  else if (enumRes->ttfColorR == (int)tmpVec->x &&
+                           enumRes->ttfColorG == (int)tmpVec->y &&
+                           enumRes->ttfColorB == (int)tmpVec->z )
+                    match = true;
+                }
+              break;
 #endif /* NO_TEXT */
-	    default:
-	      match = true;
-	      break;
-	    }
-	  if (match)
-	    {
-	      delete iterator;
-	      return enumRes;
-	    }
-	}
+            default:
+              match = true;
+              break;
+            }
+          if (match)
+            {
+              delete iterator;
+              return enumRes;
+            }
+        }
       enumRes = iterator->nextElement();
     }
@@ -582,8 +584,8 @@
     {
       if (pointer == enumRes->pointer)
-	{
-	  delete iterator;
-	  return enumRes;
-	}
+        {
+          delete iterator;
+          return enumRes;
+        }
       enumRes = iterator->nextElement();
     }
@@ -622,16 +624,16 @@
       if (status.st_mode & (S_IFDIR
 #ifndef __WIN32__
-			    | S_IFLNK
+                            | S_IFLNK
 #endif
-			    ))
-	{
-	  delete tmpDirName;
-	  return true;
-	}
+                            ))
+        {
+          delete tmpDirName;
+          return true;
+        }
       else
-	{
-	  delete tmpDirName;
-	  return false;
-	}
+        {
+          delete tmpDirName;
+          return false;
+        }
     }
   else
@@ -653,20 +655,20 @@
   if (!stat(tmpFileName, &status))
     {
-      if (status.st_mode & (S_IFREG 
+      if (status.st_mode & (S_IFREG
 #ifndef __WIN32__
-			    | S_IFLNK
+                            | S_IFLNK
 #endif
-			    ))
-	{
-	  delete tmpFileName;
-	  return true;
-	}
+                            ))
+        {
+          delete tmpFileName;
+          return true;
+        }
       else
-	{
-	  delete tmpFileName;
-	  return false;
-	}
-    }
-  else 
+        {
+          delete tmpFileName;
+          return false;
+        }
+    }
+  else
     {
       delete tmpFileName;
@@ -691,6 +693,6 @@
     }
   fclose(stream);
-    
-  delete tmpName; 
+
+  delete tmpName;
 }
 
@@ -708,5 +710,5 @@
 }
 
-/** 
+/**
     \param name the Name of the file to check
     \returns The name of the file, including the HomeDir
@@ -737,5 +739,5 @@
 }
 
-/** 
+/**
     \param fileName the Name of the File to check
     \returns The full name of the file, including the DataDir, and NULL if the file does not exist
@@ -748,5 +750,5 @@
 
   char* retName = new char[strlen(ResourceManager::getInstance()->getDataDir())
-			   + strlen(fileName) + 1];
+                           + strlen(fileName) + 1];
   sprintf(retName, "%s%s", ResourceManager::getInstance()->getDataDir(), fileName);
   if (ResourceManager::isFile(retName) || ResourceManager::isDir(retName))
@@ -790,35 +792,35 @@
       PRINT(0)("Name: %s; References: %d; Type:", enumRes->name, enumRes->count);
       switch (enumRes->type)
-	{
-	case OBJ:
-	  PRINT(0)("ObjectModel\n");
-	  break;
-	case PRIM:
-	  PRINT(0)("PrimitiveModel\n");
-	  break;
-	case IMAGE:
-	  PRINT(0)("ImageFile (Texture)\n");
-	  break;
-	default:
-	  PRINT(0)("SoundFile\n");
-	  break;
-	}
+        {
+        case OBJ:
+          PRINT(0)("ObjectModel\n");
+          break;
+        case PRIM:
+          PRINT(0)("PrimitiveModel\n");
+          break;
+        case IMAGE:
+          PRINT(0)("ImageFile (Texture)\n");
+          break;
+        default:
+          PRINT(0)("SoundFile\n");
+          break;
+        }
       PRINT(0)("gets deleted at ");
       switch(enumRes->prio)
-	{
-	default:
-	case RP_NO:
-	  PRINT(0)("first posibility (0)\n");
-	  break;
-	case RP_LEVEL:
-	  PRINT(0)("the end of the Level (1)\n");
-	  break;
-	case RP_CAMPAIGN:
-	  PRINT(0)("the end of the campaign (2)\n");
-	  break;
-	case RP_GAME:
-	  PRINT(0)("when leaving the game (3)\n");
-	  break;
-	}
+        {
+        default:
+        case RP_NO:
+          PRINT(0)("first posibility (0)\n");
+          break;
+        case RP_LEVEL:
+          PRINT(0)("the end of the Level (1)\n");
+          break;
+        case RP_CAMPAIGN:
+          PRINT(0)("the end of the campaign (2)\n");
+          break;
+        case RP_GAME:
+          PRINT(0)("when leaving the game (3)\n");
+          break;
+        }
       enumRes = iterator->nextElement();
     }
Index: orxonox/trunk/src/util/resource_manager.h
===================================================================
--- orxonox/trunk/src/util/resource_manager.h	(revision 4592)
+++ orxonox/trunk/src/util/resource_manager.h	(revision 4597)
@@ -1,7 +1,7 @@
-/*! 
+/*!
     \file resource_manager.h
     \brief The Resource Manager checks if a file/resource is loaded.
 
-    If a file/resource was already loaded the resourceManager will 
+    If a file/resource was already loaded the resourceManager will
     return a void pointer to the desired resource.
     Otherwise it will instruct the coresponding resource-loader to load,
@@ -9,5 +9,5 @@
 
     it is possible to compile the resource Manager without some modules by
-    just adding the compile flag -D.... 
+    just adding the compile flag -D....
     (NO_MODEL)
     (NO_AUDIO)
@@ -23,9 +23,10 @@
 #include "stdlibincl.h"
 
-// FORWARD DEFINITION 
+// FORWARD DEFINITION
 template<class T> class tList;
 
 //! An eumerator for different fileTypes the resourceManager supports
-typedef enum ResourceType { 
+typedef enum ResourceType
+{
 #ifndef NO_MODEL
   OBJ,                  //!< loading .obj file
@@ -46,5 +47,5 @@
 };
 
-//! An enumerator for different UNLOAD-types. 
+//! An enumerator for different UNLOAD-types.
 /**
    RP_NO:        will be unloaded on request
@@ -53,8 +54,11 @@
    RP_GAME:      will be unloaded at the end of the whole Game (when closing orxonox)
 */
-typedef enum ResourcePriority { RP_NO        =   0,
-				RP_LEVEL     =   1,
-				RP_CAMPAIGN  =   2,
-				RP_GAME      =   4 };
+typedef enum ResourcePriority
+{
+  RP_NO        =   0,
+  RP_LEVEL     =   1,
+  RP_CAMPAIGN  =   2,
+  RP_GAME      =   4
+};
 
 //! A Struct that keeps track about A resource its name its Type, and so on
@@ -63,5 +67,5 @@
   void*             pointer;           //!< Pointer to the Resource.
   int               count;             //!< How many times this Resource has been loaded.
-  
+
   char*             name;              //!< Name of the Resource.
   ResourceType      type;              //!< ResourceType of this Resource.
@@ -84,5 +88,5 @@
 //! The ResourceManager is a class, that decides if a file/resource should be loaded
 /**
-   If a file/resource was already loaded the resourceManager will 
+   If a file/resource was already loaded the resourceManager will
    return a void pointer to the desired resource.
    Otherwise it will instruct the corresponding resource-loader to load,
@@ -91,5 +95,5 @@
    It does it by looking, if a desired file has already been loaded.
 */
-class ResourceManager : public BaseObject 
+class ResourceManager : public BaseObject
 {
  public:
@@ -105,13 +109,13 @@
   bool addImageDir(const char* imageDir);
   void* load(const char* fileName, ResourcePriority prio = RP_NO,
-	     void* param1 = NULL, void* param2 = NULL, void* param3 = NULL);
+             void* param1 = NULL, void* param2 = NULL, void* param3 = NULL);
   void* load(const char* fileName, ResourceType type, ResourcePriority prio = RP_NO,
-	     void* param1 = NULL, void* param2 = NULL, void* param3 = NULL);
+             void* param1 = NULL, void* param2 = NULL, void* param3 = NULL);
   bool unload(void* pointer, ResourcePriority prio = RP_NO);
   bool unload(Resource* resource, ResourcePriority = RP_NO);
   bool unloadAllByPriority(ResourcePriority prio);
-  
+
   void debug(void);
-  
+
 
   // utility functions of this class
@@ -127,5 +131,5 @@
 
   Resource* locateResourceByInfo(const char* fileName, ResourceType type, void* param1, void* param2, void* param3);
-  Resource* locateResourceByPointer(const void* pointer);  
+  Resource* locateResourceByPointer(const void* pointer);
 
  private:
Index: orxonox/trunk/src/util/state.cc
===================================================================
--- orxonox/trunk/src/util/state.cc	(revision 4592)
+++ orxonox/trunk/src/util/state.cc	(revision 4597)
@@ -1,3 +1,3 @@
-/* 
+/*
    orxonox - the future of 3D-vertical-scrollers
 
@@ -28,7 +28,8 @@
    \brief standard constructor
 */
-State::State () 
+State::State ()
 {
-   this->setClassName ("State");
+   this->setClassID(CL_STATE, "State");
+   this->setName("State");
 
    this->camera = NULL;
@@ -44,5 +45,5 @@
    \brief standard deconstructor
 */
-State::~State () 
+State::~State ()
 {
   State::singletonRef = NULL;
Index: orxonox/trunk/src/util/state.h
===================================================================
--- orxonox/trunk/src/util/state.h	(revision 4592)
+++ orxonox/trunk/src/util/state.h	(revision 4597)
@@ -1,3 +1,3 @@
-/*! 
+/*!
     \file state.h
     \brief Definition of the States-singleton Class
Index: orxonox/trunk/src/util/track/pilot_node.cc
===================================================================
--- orxonox/trunk/src/util/track/pilot_node.cc	(revision 4592)
+++ orxonox/trunk/src/util/track/pilot_node.cc	(revision 4597)
@@ -1,5 +1,5 @@
 
 
-/* 
+/*
    orxonox - the future of 3D-vertical-scrollers
 
@@ -28,7 +28,8 @@
    \brief standard constructor
 */
-PilotNode::PilotNode () 
+PilotNode::PilotNode ()
 {
    this->setClassID(CL_PILOT_PARENT, "PilotNode");
+   this->setName("PilotNode");
 
    travelSpeed = 30.0;
@@ -40,12 +41,12 @@
    \brief standard deconstructor
 */
-PilotNode::~PilotNode () 
+PilotNode::~PilotNode ()
 {
 
 }
 
-/** 
+/**
     \brief ticks the node
-    \param time the time about whitch to tick						\
+    \param time the time about whitch to tick                                           \
 */
 void PilotNode::tick(float time)
@@ -73,9 +74,9 @@
    direction = q.apply(direction);
 
-   
+
 
    Vector orthDirection(0,0,1);
    orthDirection = q.apply(orthDirection);
-   
+
    if( this->bUp)
      accel = accel+(direction*acceleration);
@@ -83,11 +84,11 @@
      accel = accel -(direction*acceleration);
    if( this->bLeft)
-     accel = accel - (orthDirection*acceleration); 
+     accel = accel - (orthDirection*acceleration);
    if( this->bRight)
      accel = accel + (orthDirection*acceleration);
-   
+
    Vector move = accel * time;
    this->shiftCoor (move);
-   
+
    Quaternion q1(-M_PI/4 * this->roll/40000.0, Vector(0,0,1));
    Quaternion q2(-M_PI/4 * this->pitch/30000.0, Vector(0,1,0));
Index: orxonox/trunk/src/util/track/pilot_node.h
===================================================================
--- orxonox/trunk/src/util/track/pilot_node.h	(revision 4592)
+++ orxonox/trunk/src/util/track/pilot_node.h	(revision 4597)
@@ -1,3 +1,3 @@
-/*! 
+/*!
     \file pilot_node.h
     \brief Definition of a PilotNode
Index: orxonox/trunk/src/util/track/track_manager.cc
===================================================================
--- orxonox/trunk/src/util/track/track_manager.cc	(revision 4592)
+++ orxonox/trunk/src/util/track/track_manager.cc	(revision 4597)
@@ -40,4 +40,6 @@
 TrackElement::TrackElement(void)
 {
+  this->setClassID(CL_TRACK_ELEMENT, "TrackElement");
+
   this->isFresh = true;
   this->isHotPoint = false;
@@ -358,4 +360,5 @@
 {
   this->setClassID(CL_TRACK_MANAGER, "TrackManager");
+  this->setName("TrackManager");
 
   TrackManager::singletonRef = this; // do this because otherwise the TrackNode cannot get The instance of the TrackManager
Index: orxonox/trunk/src/util/track/track_node.cc
===================================================================
--- orxonox/trunk/src/util/track/track_node.cc	(revision 4592)
+++ orxonox/trunk/src/util/track/track_node.cc	(revision 4597)
@@ -1,5 +1,5 @@
 
 
-/* 
+/*
    orxonox - the future of 3D-vertical-scrollers
 
@@ -28,8 +28,8 @@
    \brief standard constructor
 */
-TrackNode::TrackNode () 
+TrackNode::TrackNode ()
 {
   this->setClassID(CL_TRACK_NODE, "TrackNode");
-  this->setName("TrackNode"); /* absolete but still used... */
+  this->setName("TrackNode");
 
   NullParent::getInstance()->addChild(this);
@@ -38,9 +38,8 @@
 }
 
-
 /**
    \brief standard deconstructor
 */
-TrackNode::~TrackNode () 
+TrackNode::~TrackNode ()
 {
 
