Index: branches/new_class_id/src/lib/shell/shell_command.cc
===================================================================
--- branches/new_class_id/src/lib/shell/shell_command.cc	(revision 9727)
+++ branches/new_class_id/src/lib/shell/shell_command.cc	(revision 9728)
@@ -44,5 +44,4 @@
     // copy the executor:
     this->executor = executor;
-    this->executor->setName(commandName);
 
     for (unsigned int i = 0; i < this->executor->getParamCount(); i++)
Index: branches/new_class_id/src/lib/shell/shell_command.h
===================================================================
--- branches/new_class_id/src/lib/shell/shell_command.h	(revision 9727)
+++ branches/new_class_id/src/lib/shell/shell_command.h	(revision 9728)
@@ -10,4 +10,13 @@
 
 #include "executor/executor.h"
+
+/// THIS IS USED TO LOAD CONSTANT AND STATIC FUNCTIONS EASILY.
+#include "executor/executor_functional.h"
+#define EXECUTOR_FUNCTIONAL_USE_CONST
+#include "executor/executor_functional.h"
+#define EXECUTOR_FUNCTIONAL_USE_STATIC
+#include "executor/executor_functional.h"
+
+
 #include "shell_completion_plugin.h"
 
Index: branches/new_class_id/src/lib/util/executor/executor.cc
===================================================================
--- branches/new_class_id/src/lib/util/executor/executor.cc	(revision 9727)
+++ branches/new_class_id/src/lib/util/executor/executor.cc	(revision 9728)
@@ -19,5 +19,12 @@
 
 
-ObjectListDefinition(ExecutorBase);
+template<> MT_Type ExecutorParamType<bool>() { return MT_BOOL; };
+template<> MT_Type ExecutorParamType<int>() { return MT_INT; };
+template<> MT_Type ExecutorParamType<unsigned int>() { return MT_UINT; };
+template<> MT_Type ExecutorParamType<float>() { return MT_FLOAT; };
+template<> MT_Type ExecutorParamType<char>() { return MT_CHAR; };
+template<> MT_Type ExecutorParamType<const std::string&>() { return MT_STRING; };
+
+
 
 /**
@@ -37,6 +44,4 @@
   : bRetVal(hasRetVal)
 {
-  this->registerObject(this, ExecutorBase::_objectList);
-
   // What Parameters have we got
   this->defaultValue[0] = param0;
Index: branches/new_class_id/src/lib/util/executor/executor.h
===================================================================
--- branches/new_class_id/src/lib/util/executor/executor.h	(revision 9727)
+++ branches/new_class_id/src/lib/util/executor/executor.h	(revision 9728)
@@ -11,5 +11,4 @@
 #include "helper_functions.h"
 #include "multi_type.h"
-#include "substring.h"
 #include "functor_list.h" //< MUST BE INCLUDED HERE AT LEAST ONCE.
 
@@ -19,4 +18,14 @@
   Executor_Static            = 2,
 } Executor_Type;
+
+
+
+template<typename type> MT_Type ExecutorParamType() { return MT_EXT1; };
+template<> MT_Type ExecutorParamType<bool>();
+template<> MT_Type ExecutorParamType<int>();
+template<> MT_Type ExecutorParamType<unsigned int>();
+template<> MT_Type ExecutorParamType<float>();
+template<> MT_Type ExecutorParamType<char>();
+template<> MT_Type ExecutorParamType<const std::string&>();
 
 ////////////////
@@ -34,7 +43,6 @@
  *  Functions with many types (@see functor_list.h)
  */
-class ExecutorBase : public BaseObject
+class ExecutorBase
 {
-  ObjectListDeclaration(ExecutorBase);
 public:
   //    virtual bool operator==(const Executor* executor) const = 0;
@@ -60,4 +68,5 @@
 
 protected:
+  virtual ~ExecutorBase() {};
   ExecutorBase(bool hasRetVal = false,
                const MultiType& param0 = MT_NULL, const MultiType& param1 = MT_NULL,
@@ -109,23 +118,13 @@
   }
 
-
-
 protected:
   Executor(bool hasRetVal,
-	   const MultiType& param0 = MT_NULL, const MultiType& param1 = MT_NULL,
+           const MultiType& param0 = MT_NULL, const MultiType& param1 = MT_NULL,
            const MultiType& param2 = MT_NULL, const MultiType& param3 = MT_NULL,
            const MultiType& param4 = MT_NULL, const MultiType& param5 = MT_NULL,
            const MultiType& param6 = MT_NULL)
       : ExecutorBase(hasRetVal, param0, param1, param2, param3, param4, param5, param6)
-  {}
-};
-
-
-
-#include "executor/executor_functional.h"
-#define EXECUTOR_FUNCTIONAL_USE_CONST
-#include "executor/executor_functional.h"
-#define EXECUTOR_FUNCTIONAL_USE_STATIC
-#include "executor/executor_functional.h"
+{}}
+;
 
 #endif /* _EXECUTOR_H */
Index: branches/new_class_id/src/lib/util/executor/executor_functional.cc
===================================================================
--- branches/new_class_id/src/lib/util/executor/executor_functional.cc	(revision 9727)
+++ branches/new_class_id/src/lib/util/executor/executor_functional.cc	(revision 9728)
@@ -14,14 +14,7 @@
 */
 
-#include "executor.h"
+#include "executor_functional.h"
 std::string ExecutorFunctional_returningString_from[7];
 
-
-template<> MT_Type ExecutorParamType<bool>() { return MT_BOOL; };
-template<> MT_Type ExecutorParamType<int>() { return MT_INT; };
-template<> MT_Type ExecutorParamType<unsigned int>() { return MT_UINT; };
-template<> MT_Type ExecutorParamType<float>() { return MT_FLOAT; };
-template<> MT_Type ExecutorParamType<char>() { return MT_CHAR; };
-template<> MT_Type ExecutorParamType<const std::string&>() { return MT_STRING; };
 
 template<> bool fromString<bool>(const std::string& input, bool defaultValue) { return isBool(input, defaultValue); };
Index: branches/new_class_id/src/lib/util/executor/executor_functional.h
===================================================================
--- branches/new_class_id/src/lib/util/executor/executor_functional.h	(revision 9727)
+++ branches/new_class_id/src/lib/util/executor/executor_functional.h	(revision 9728)
@@ -24,12 +24,6 @@
 
 #include "executor.h"
-
-template<typename type> MT_Type ExecutorParamType() { return MT_EXT1; };
-template<> MT_Type ExecutorParamType<bool>();
-template<> MT_Type ExecutorParamType<int>();
-template<> MT_Type ExecutorParamType<unsigned int>();
-template<> MT_Type ExecutorParamType<float>();
-template<> MT_Type ExecutorParamType<char>();
-template<> MT_Type ExecutorParamType<const std::string&>();
+#include "substring.h"
+
 
 template<typename type> type fromString(const std::string& input, type defaultValue) { return defaultValue; };
@@ -70,14 +64,25 @@
 
 #ifdef EXECUTOR_FUNCTIONAL_USE_CONST
+ #ifdef __EXECUTOR_FUNCTIONAL_CONST_INCLUDED
+  #define __EXECUTOR_FUNCTIONAL_NOT_INCLUDE_THIS
+ #else
+  #define __EXECUTOR_FUNCTIONAL_CONST_INCLUDED
+ #endif
  #undef __EXECUTOR_FUNCTIONAL_CONST
  #define __EXECUTOR_FUNCTIONAL_CONST const
  #undef __EXECUTOR_FUNCTIONAL_NAME
  #define __EXECUTOR_FUNCTIONAL_NAME(ParamCount) Executor##ParamCount##Params_const
-#endif
-
-#ifdef EXECUTOR_FUNCTIONAL_USE_STATIC
+//#endif /* EXECUTOR_FUNCTIONAL_USE_CONST */
+
+#elif defined EXECUTOR_FUNCTIONAL_USE_STATIC
  #ifdef EXECUTOR_FUNCTIONAL_USE_CONST
   #error you obviously do not know what you are doing !! ask the bensch
- #endif /* EXECUTOR_FUNCTIONAL_USE_CONST */
+ #endif
+
+  #ifdef __EXECUTOR_FUNCTIONAL_STATIC_INCLUDED
+   #define __EXECUTOR_FUNCTIONAL_NOT_INCLUDE_THIS
+  #else
+   #define __EXECUTOR_FUNCTIONAL_STATIC_INCLUDED
+  #endif
 
 #undef __EXECUTOR_FUNCTIONAL_FUNCTION_EXEC
@@ -88,6 +93,14 @@
  #define __EXECUTOR_FUNCTIONAL_FUNCTION_POINTER    *functionPointer
 
-#endif /* EXECUTOR_FUNCTIONAL_USE_STATIC */
-
+//#endif /* EXECUTOR_FUNCTIONAL_USE_STATIC */
+#else
+ #ifdef __EXECUTOR_FUNCTIONAL_PLAIN_INCLUDED
+  #define __EXECUTOR_FUNCTIONAL_NOT_INCLUDE_THIS
+ #else
+  #define __EXECUTOR_FUNCTIONAL_PLAIN_INCLUDED
+ #endif
+#endif
+
+#ifndef __EXECUTOR_FUNCTIONAL_NOT_INCLUDE_THIS
 ///////////
 //// 0 ////
@@ -122,10 +135,4 @@
   };
 
-  /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, int& count, void* values) const
-  {
-    (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)();
-  }
-
   /**
    * @brief copies the Executor
@@ -161,13 +168,4 @@
     this->functionPointer = functionPointer;
   };
-
-  /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, int& count, void* values) const
-  {
-    const MultiType* mt = (const MultiType*)values;
-    return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-             fromMulti<type0>((count > 0)? mt[0] : this->defaultValue[0]) );
-  }
-
 
   /**
@@ -225,13 +223,4 @@
       (sub.size() > 1) ? fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1)) : (fromMulti<type1>(this->defaultValue[1])));
   };
-
-  /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, int& count, void* values) const
-  {
-    const MultiType* mt = (const MultiType*)values;
-    return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-             fromMulti<type0>((count > 0) ? mt[0] : this->defaultValue[0]),
-             fromMulti<type1>((count > 1) ? mt[1] : this->defaultValue[1]) );
-  }
 
   /**
@@ -280,14 +269,4 @@
       (sub.size() > 2) ? fromString<type2>(sub[2], getDefault<type2>(this->defaultValue, 2)) : (fromMulti<type2>(this->defaultValue[2])));
   };
-
-  /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, int& count, void* values) const
-  {
-    const MultiType* mt = (const MultiType*)values;
-    return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-             fromMulti<type0>((count > 0) ? mt[0] : this->defaultValue[0]),
-             fromMulti<type1>((count > 1) ? mt[1] : this->defaultValue[1]),
-             fromMulti<type2>((count > 2) ? mt[2] : this->defaultValue[2]) );
-  }
 
   /**
@@ -338,15 +317,4 @@
       (sub.size() > 3) ? fromString<type3>(sub[3], getDefault<type3>(this->defaultValue, 3)) : (fromMulti<type3>(this->defaultValue[3])));
   };
-
-  /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, int& count, void* values) const
-  {
-    const MultiType* mt = (const MultiType*)values;
-    return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-             fromMulti<type0>((count > 0) ? mt[0] : this->defaultValue[0]),
-             fromMulti<type1>((count > 1) ? mt[1] : this->defaultValue[1]),
-             fromMulti<type2>((count > 2) ? mt[2] : this->defaultValue[2]),
-             fromMulti<type3>((count > 3) ? mt[3] : this->defaultValue[3]) );
-  }
 
   /**
@@ -399,16 +367,4 @@
   };
 
-  /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, int& count, void* values) const
-  {
-    const MultiType* mt = (const MultiType*)values;
-    return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-             fromMulti<type0>((count > 0) ? mt[0] : this->defaultValue[0]),
-             fromMulti<type1>((count > 1) ? mt[1] : this->defaultValue[1]),
-             fromMulti<type2>((count > 2) ? mt[2] : this->defaultValue[2]),
-             fromMulti<type3>((count > 3) ? mt[3] : this->defaultValue[3]),
-             fromMulti<type4>((count > 4) ? mt[4] : this->defaultValue[4]) );
-  }
-
   /**
    * @brief copies the Executor
@@ -513,2 +469,6 @@
  #undef EXECUTOR_FUNCTIONAL_USE_STATIC
 #endif
+
+
+#endif /* __EXECUTOR_FUNCTIONAL_NOT_INCLUDE_THIS */
+#undef __EXECUTOR_FUNCTIONAL_NOT_INCLUDE_THIS
Index: branches/new_class_id/src/lib/util/executor/executor_lua.h
===================================================================
--- branches/new_class_id/src/lib/util/executor/executor_lua.h	(revision 9727)
+++ branches/new_class_id/src/lib/util/executor/executor_lua.h	(revision 9728)
@@ -127,14 +127,4 @@
   }
 
-  /**
-   * @brief executes the Command on BaseObject
-   * @param object the BaseObject to execute this Executor on
-   * @param loadString ignored in this case
-   */
-  virtual void operator()(BaseObject* object, const SubString& = SubString()) const
-  {
-    PRINTF(1)("no usefull executor\n");
-  }
-
   virtual void operator()(BaseObject* object, lua_State*& state) const
   {
@@ -174,13 +164,4 @@
   }
 
-  /**
-   * @brief executes the Command on BaseObject
-   * @param object the BaseObject to execute this Executor on
-   * @param loadString ignored in this case
-   */
-  virtual void operator()(BaseObject* object, const SubString& = SubString()) const
-  {
-    PRINTF(1)("no usefull executor\n");
-  }
 
   virtual void operator()(BaseObject* object, lua_State*& state) const
@@ -374,14 +355,4 @@
     this->functionPointer = function;
     this->functorType = Executor_Objective;
-  }
-
-  /**
-   * @brief executes the Command on BaseObject
-   * @param object the BaseObject to execute this Executor on
-   * @param loadString ignored in this case
-   */
-  virtual void operator()(BaseObject* object, const SubString& = SubString()) const
-  {
-    PRINTF(1)("no usefull executor\n");
   }
 
Index: branches/new_class_id/src/lib/util/loading/load_param.h
===================================================================
--- branches/new_class_id/src/lib/util/loading/load_param.h	(revision 9727)
+++ branches/new_class_id/src/lib/util/loading/load_param.h	(revision 9728)
@@ -25,4 +25,6 @@
 
 #include "executor/executor.h"
+#include "executor/executor_functional.h"
+
 #include "parser/tinyxml/tinyxml.h"
 
@@ -30,4 +32,5 @@
 class LoadClassDescription;
 class LoadParamDescription;
+class TiXmlElement;
 
 /**
