Index: orxonox/trunk/src/lib/collision_detection/cd_engine.cc
===================================================================
--- orxonox/trunk/src/lib/collision_detection/cd_engine.cc	(revision 4739)
+++ orxonox/trunk/src/lib/collision_detection/cd_engine.cc	(revision 4742)
@@ -31,5 +31,4 @@
 CDEngine::CDEngine ()
 {
-   this->setClassName("CDEngine");
    this->setClassID(CL_CD_ENGINE, "CDEngine");
 
Index: orxonox/trunk/src/lib/coord/p_node.cc
===================================================================
--- orxonox/trunk/src/lib/coord/p_node.cc	(revision 4739)
+++ orxonox/trunk/src/lib/coord/p_node.cc	(revision 4742)
@@ -101,5 +101,5 @@
 void PNode::init(PNode* parent)
 {
-  this->setClassID(CL_PARENT_NODE);
+  this->setClassID(CL_PARENT_NODE, "PNode");
   this->children = new tList<PNode>();
   this->bRelCoorChanged = true;
Index: orxonox/trunk/src/lib/lang/base_object.cc
===================================================================
--- orxonox/trunk/src/lib/lang/base_object.cc	(revision 4739)
+++ orxonox/trunk/src/lib/lang/base_object.cc	(revision 4742)
@@ -68,25 +68,5 @@
 void BaseObject::setClassID(long classID, const char* className)
 {
-  this->setClassID(classID);
-  this->setClassName(className);
-}
-
-
-/**
-   \brief sets the class identifier
-   \param id a number for the class from class_list.h enumeration
-*/
-void BaseObject::setClassID (long classID)
-{
   this->classID |= classID;
-}
-
-
-/**
-   \brief sets the class identifiers
-   \param className the class name
-*/
-void BaseObject::setClassName(const char* className)
-{
   this->className = className;
 }
@@ -95,5 +75,5 @@
   \brief set the name of the Object
  */
-             void BaseObject::setName (const char* objectName)
+void BaseObject::setName (const char* objectName)
 {
   if (this->objectName)
Index: orxonox/trunk/src/lib/lang/base_object.h
===================================================================
--- orxonox/trunk/src/lib/lang/base_object.h	(revision 4739)
+++ orxonox/trunk/src/lib/lang/base_object.h	(revision 4742)
@@ -4,6 +4,4 @@
 
     This is a global handler for all classes.
-
-    \todo isA()
 */
 
@@ -12,5 +10,5 @@
 #define _BASE_OBJECT_H
 
-#include "class_list.h"
+#include "class_id.h"
 #ifndef NULL
 #define NULL 0x0        //!< NULL
@@ -45,6 +43,4 @@
 
  protected:
-  void setClassID(long classID);
-  void setClassName(const char* className);
   void setClassID(long classID, const char* className);
 
@@ -52,10 +48,15 @@
   void finalize(void) { this->finalized = true; };
 
- private:
-  const char*    className;        //!< the name of the class
-  long           classID;          //!< this is the id from the class_list.h enumeration
-  char*          objectName;       //!< The name of this object
+  private:
+    static void addToClassList(BaseObject* object, ClassID id, const char* className);
 
-  bool           finalized;        //!< is true if the object is ready to be garbage collected
+  private:
+    const char*        className;        //!< the name of the class
+    long               classID;          //!< this is the id from the class_list.h enumeration
+    char*              objectName;       //!< The name of this object
+
+    bool               finalized;        //!< is true if the object is ready to be garbage collected
+
+//    static ClassList*  classList;
 };
 
Index: orxonox/trunk/src/lib/physics/fields/gravity.cc
===================================================================
--- orxonox/trunk/src/lib/physics/fields/gravity.cc	(revision 4739)
+++ orxonox/trunk/src/lib/physics/fields/gravity.cc	(revision 4742)
@@ -25,18 +25,10 @@
 CREATE_FACTORY(Gravity);
 
-/**
-   \brief standard constructor
-   \todo this constructor is not jet implemented - do it
-*/
-Gravity::Gravity ()
-{
-   this->setClassName("Gravity");
-}
-
 Gravity::Gravity(const TiXmlElement* root)
 {
-  this->setClassName("Gravity");
+  this->setClassID(CL_FIELD_GRAVITY, "Gravity");
 
-  this->loadParams(root);
+  if (root != NULL)
+    this->loadParams(root);
 }
 
Index: orxonox/trunk/src/lib/physics/fields/gravity.h
===================================================================
--- orxonox/trunk/src/lib/physics/fields/gravity.h	(revision 4739)
+++ orxonox/trunk/src/lib/physics/fields/gravity.h	(revision 4742)
@@ -18,6 +18,5 @@
 
  public:
-  Gravity();
-  Gravity(const TiXmlElement* root);
+  Gravity(const TiXmlElement* root = NULL);
   virtual ~Gravity();
 
Index: orxonox/trunk/src/lib/physics/fields/point_gravity.cc
===================================================================
--- orxonox/trunk/src/lib/physics/fields/point_gravity.cc	(revision 4739)
+++ orxonox/trunk/src/lib/physics/fields/point_gravity.cc	(revision 4742)
@@ -1,3 +1,3 @@
-/* 
+/*
    orxonox - the future of 3D-vertical-scrollers
 
@@ -25,7 +25,7 @@
    \todo this constructor is not jet implemented - do it
 */
-PointGravity::PointGravity () 
+PointGravity::PointGravity ()
 {
-   this->setClassName ("PointGravity");
+   this->setClassID(CL_FIELD_POINT_GRAVITY, "PointGravity");
 }
 
@@ -35,5 +35,5 @@
 
 */
-PointGravity::~PointGravity () 
+PointGravity::~PointGravity ()
 {
   // delete what has to be deleted here
Index: orxonox/trunk/src/lib/physics/fields/twirl.cc
===================================================================
--- orxonox/trunk/src/lib/physics/fields/twirl.cc	(revision 4739)
+++ orxonox/trunk/src/lib/physics/fields/twirl.cc	(revision 4742)
@@ -1,3 +1,3 @@
-/* 
+/*
    orxonox - the future of 3D-vertical-scrollers
 
@@ -25,7 +25,7 @@
    \todo this constructor is not jet implemented - do it
 */
-Twirl::Twirl () 
+Twirl::Twirl ()
 {
-   this->setClassName ("Twirl");
+   this->setClassID(CL_FIELD_TWIRL, "Twirl");
 }
 
@@ -35,5 +35,5 @@
 
 */
-Twirl::~Twirl () 
+Twirl::~Twirl ()
 {
   // delete what has to be deleted here
