Index: branches/new_class_id/src/lib/util/executor/executor.cc
===================================================================
--- branches/new_class_id/src/lib/util/executor/executor.cc	(revision 9731)
+++ branches/new_class_id/src/lib/util/executor/executor.cc	(revision 9732)
@@ -54,7 +54,7 @@
 
   this->paramCount = 0;
-  for (unsigned int i = 0; i <= FUNCTOR_MAX_ARGUMENTS; i++)
+  for (unsigned int i = 0; i <= EXECUTOR_MAX_ARGUMENTS; i++)
   {
-    if (this->defaultValue[i] == MT_NULL || i == FUNCTOR_MAX_ARGUMENTS)
+    if (this->defaultValue[i] == MT_NULL || i == EXECUTOR_MAX_ARGUMENTS)
     {
       this->paramCount = i;
Index: branches/new_class_id/src/lib/util/executor/executor.h
===================================================================
--- branches/new_class_id/src/lib/util/executor/executor.h	(revision 9731)
+++ branches/new_class_id/src/lib/util/executor/executor.h	(revision 9732)
@@ -18,4 +18,8 @@
   Executor_Static,
 } Executor_Type;
+
+//! The maximum Count of Arguments of the Executor
+/** This is Hardcoded, for each Executor. */
+#define EXECUTOR_MAX_ARGUMENTS                7
 
 
@@ -46,6 +50,4 @@
 {
 public:
-  //    virtual bool operator==(const Executor* executor) const = 0;
-
   /** @param i the i'th defaultValue, @returns reference to the MultiType */
   inline MultiType& getDefaultValue(unsigned int i) { return defaultValue[i]; };
@@ -83,5 +85,8 @@
   MultiType                   defaultValue[7];  //!< Default Values.
 
+private:
   const bool                  bRetVal;          //!< True if the Executor has a return Value.
+  const bool                  bStaticFunction;  //!< A Executor to a Static Function
+  const bool                  bConstFunction;   //!< A Executor to a Constant Function
 };
 
Index: branches/new_class_id/src/lib/util/executor/executor_functional.h
===================================================================
--- branches/new_class_id/src/lib/util/executor/executor_functional.h	(revision 9731)
+++ branches/new_class_id/src/lib/util/executor/executor_functional.h	(revision 9732)
@@ -61,8 +61,8 @@
 {
 public:
-  ToType operator()(FromType& sub, const MultiType* const defaults)
-  {
-    return (sub.size() > index) ?
-           fromString<ToType>(sub[index], getDefault<ToType>(defaults, index)) :
+  ToType operator()(FromType& CallValue, const MultiType* const defaults)
+  {
+    return (CallValue.size() > index) ?
+           fromString<ToType>(CallValue[index], getDefault<ToType>(defaults, index)) :
            fromMulti<ToType>(defaults[index]);
   }
@@ -426,7 +426,7 @@
  */
 #define EXECUTOR_FUNCTIONAL_CREATOR1(type0) \
-template<class T> Executor<const SubString>* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
+template<class T> Executor<const SubString>* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0) __EXECUTOR_FUNCTIONAL_CONST) \
 { \
-  return new __EXECUTOR_FUNCTIONAL_NAME(1)<T, const SubString, type0##_TYPE>(functionPointer); \
+  return new __EXECUTOR_FUNCTIONAL_NAME(1)<T, const SubString, type0>(functionPointer); \
 }
 
@@ -437,7 +437,7 @@
  */
 #define EXECUTOR_FUNCTIONAL_CREATOR2(type0, type1) \
-template<class T> Executor<const SubString>* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
+template<class T> Executor<const SubString>* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1) __EXECUTOR_FUNCTIONAL_CONST) \
 { \
-  return new __EXECUTOR_FUNCTIONAL_NAME(2)<T, const SubString, type0##_TYPE, type1##_TYPE>(functionPointer); \
+  return new __EXECUTOR_FUNCTIONAL_NAME(2)<T, const SubString, type0, type1>(functionPointer); \
 }
 
@@ -449,7 +449,7 @@
  */
 #define EXECUTOR_FUNCTIONAL_CREATOR3(type0, type1, type2) \
-template<class T> Executor<const SubString>* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
+template<class T> Executor<const SubString>* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1, type2) __EXECUTOR_FUNCTIONAL_CONST) \
 { \
-  return new __EXECUTOR_FUNCTIONAL_NAME(3)<T, const SubString, type0##_TYPE, type1##_TYPE, type2##_TYPE>(functionPointer); \
+  return new __EXECUTOR_FUNCTIONAL_NAME(3)<T, const SubString, type0, type1, type2>(functionPointer); \
 }
 
@@ -462,7 +462,7 @@
  */
 #define EXECUTOR_FUNCTIONAL_CREATOR4(type0, type1, type2, type3) \
-template<class T> Executor<const SubString>* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
+template<class T> Executor<const SubString>* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1, type2, type3) __EXECUTOR_FUNCTIONAL_CONST) \
 { \
-  return new __EXECUTOR_FUNCTIONAL_NAME(4)<T, const SubString, type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE>(functionPointer); \
+  return new __EXECUTOR_FUNCTIONAL_NAME(4)<T, const SubString, type0, type1, type2, type3>(functionPointer); \
 }
 
@@ -476,7 +476,7 @@
  */
 #define EXECUTOR_FUNCTIONAL_CREATOR5(type0, type1, type2, type3, type4) \
-template<class T> Executor<const SubString>* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
+template<class T> Executor<const SubString>* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1, type2, type3, type4) __EXECUTOR_FUNCTIONAL_CONST) \
 { \
-    return new __EXECUTOR_FUNCTIONAL_NAME(5)<T, const SubString, type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE>(functionPointer); \
+    return new __EXECUTOR_FUNCTIONAL_NAME(5)<T, const SubString, type0, type1, type2, type3, type4>(functionPointer); \
 }
 
Index: branches/new_class_id/src/lib/util/executor/functor_list.h
===================================================================
--- branches/new_class_id/src/lib/util/executor/functor_list.h	(revision 9731)
+++ branches/new_class_id/src/lib/util/executor/functor_list.h	(revision 9732)
@@ -8,142 +8,69 @@
    the Free Software Foundation; either version 2, or (at your option)
    any later version.
-   */
+*/
 
 /*!
  * @file functors_list.h
- * all the Different types of Functions one can include
-*/
-
-/**
-   useable FunctionParameters are:
-   l_INT:       int
-   l_LONG:      long
-   l_SHORT:     short
-   l_FLOAT:     float
-   l_STRING:    const std::string&
-   l_XML_ELEM:  TiXmlElement*
+ * all the Different types of Functions one can include by using a simple createExecutor call
+ * with a FunctionPointer as Argument
  */
 
-#ifndef __FUNCTOR_PARAMETERS__
-#define __FUNCTOR_PARAMETERS__
-
-//! defines the maximum count of arguments function pointers might have
-#define FUNCTOR_MAX_ARGUMENTS                7
-#include "multi_type.h"
-
-
-#define l_BOOL_TYPE        bool                 //!< The type of an BOOL
-#define l_BOOL_FUNC        isBool               //!< The function to call to parse BOOL
-#define l_BOOL_PARAM       MT_BOOL              //!< the type of the parameter BOOL
-#define l_BOOL_DEFAULT     false                //!< a default Value for an BOOL
-#define l_BOOL_DEFGRAB(i)  this->defaultValue[i].getBool()
-
-#define l_INT_TYPE         int                  //!< The type of an INT
-#define l_INT_FUNC         isInt                //!< The function to call to parse INT
-#define l_INT_PARAM        MT_INT               //!< the type of the parameter INT
-#define l_INT_DEFAULT      0                    //!< a default Value for an INT
-#define l_INT_DEFGRAB(i)   this->defaultValue[i].getInt()
-
-#define l_UINT_TYPE        unsigned int         //!< The type of an UINT
-#define l_UINT_FUNC        isInt                //!< The function to call to parse UINT
-#define l_UINT_PARAM       MT_INT        //!< the type of the parameter UINT
-#define l_UINT_DEFAULT     0                    //!< a default Value for an UINT
-#define l_UINT_DEFGRAB(i)  (unsigned int)this->defaultValue[i].getInt()
-
-#define l_LONG_TYPE        long                 //!< The type of a LONG
-#define l_LONG_FUNC        isInt                //!< The function to parse a LONG
-#define l_LONG_PARAM       MT_INT //!< the type of the parameter LONG
-#define l_LONG_DEFAULT     0                    //!< a default Value for a LONG
-#define l_LONG_DEFGRAB(i)  (long)this->defaultValue[i].getInt()
-
-// #define l_SHORT_TYPE       short                //!< The type of a SHORT
-// #define l_SHORT_FUNC       atoi                 //!< The function to parse a SHORT
-// #define l_SHORT_NAME       "short"              //!< The name of a SHORT
-// #define l_SHORT_PARAM      ParameterShort       //!< the type of the parameter SHORT
-// #define l_SHORT_DEFAULT    0                    //!< a default Value for a SHORT
-
-#define l_FLOAT_TYPE       float                //!< The type of a FLOAT
-#define l_FLOAT_FUNC       isFloat              //!< The function to parse a FLOAT
-#define l_FLOAT_PARAM      MT_FLOAT             //!< the type of the parameter FLOAT
-#define l_FLOAT_DEFAULT    0.0                  //!< a default Value for a FLOAT
-#define l_FLOAT_DEFGRAB(i) this->defaultValue[i].getFloat()
-
-//#define l_VECTOR_TYPE      const Vector&        //!< The type of a VECTOR
-//#define l_VECTOR_FUNC      isVector             //!< The function to parse a VECTOR
-//#define l_VECTOR_NAME      "Vector[x/y/z]"      //!< The name of a VECTOR
-//#define l_VECTOR_DEFAULT   Vector(0,0,0)        //!< Default value for a VECTOR
-
-#define l_STRING_TYPE      const std::string&   //!< The type of a STRING
-#define l_STRING_FUNC      isString             //!< The function to parse a STRING
-#define l_STRING_PARAM     MT_STRING            //!< the type of the parameter STRING
-#define l_STRING_DEFAULT   ""                   //!< a default Value for an STRING
-#define l_STRING_DEFGRAB(i) this->defaultValue[i].getString()
-
-#define l_XML_ELEM_TYPE    const TiXmlElement*  //!< The type of an XML_ELEM
-#define l_XML_ELEM_FUNC                         //!< The function to parse an XML_ELEM
-//#define l_XML_ELEM_PARAM   Parameter            //!< the type of the parameter XML_ELEM
-#define l_XML_ELEM_DEFAULT NULL                 //!< The dafault Value for an XML_ELEM
-
-#endif /* __FUNCTOR_PARAMETERS__ */
-
-
 #ifdef FUNCTOR_LIST
-
   FUNCTOR_LIST(0)();
   //! makes functions with one string
-  FUNCTOR_LIST(1)(l_STRING);
+  FUNCTOR_LIST(1)(const std::string&);
   //! makes functions with two strings
-  FUNCTOR_LIST(2)(l_STRING, l_STRING);
+  FUNCTOR_LIST(2)(const std::string&, const std::string&);
   //! makes functions with three strings
-  FUNCTOR_LIST(3)(l_STRING, l_STRING, l_STRING);
+  FUNCTOR_LIST(3)(const std::string&, const std::string&, const std::string&);
   //! makes functions with four strings
-  FUNCTOR_LIST(4)(l_STRING, l_STRING, l_STRING, l_STRING);
+  FUNCTOR_LIST(4)(const std::string&, const std::string&, const std::string&, const std::string&);
 
 
   //! makes functions with one bool
-  FUNCTOR_LIST(1)(l_BOOL);
+  FUNCTOR_LIST(1)(bool);
 
   //! makes functions with one int
-  FUNCTOR_LIST(1)(l_INT);
+  FUNCTOR_LIST(1)(int);
   //! makes functions with two ints
-  FUNCTOR_LIST(2)(l_INT, l_INT);
+  FUNCTOR_LIST(2)(int, int);
   //! makes functions with three ints
-  FUNCTOR_LIST(3)(l_INT, l_INT, l_INT);
+  FUNCTOR_LIST(3)(int, int, int);
   //! makes functions with four ints
-  FUNCTOR_LIST(4)(l_INT, l_INT, l_INT, l_INT);
+  FUNCTOR_LIST(4)(int, int, int, int);
 
 
   //! makes functions with one unsigned int
-  FUNCTOR_LIST(1)(l_UINT);
+  FUNCTOR_LIST(1)(unsigned int);
   //! makes functions with two unsigned ints
-  FUNCTOR_LIST(2)(l_UINT, l_UINT);
+  FUNCTOR_LIST(2)(unsigned int, unsigned int);
   //! makes functions with three unsigned ints
-  FUNCTOR_LIST(3)(l_UINT, l_UINT, l_UINT);
+  FUNCTOR_LIST(3)(unsigned int, unsigned int, unsigned int);
   //! makes functions with four unsigned ints
-  FUNCTOR_LIST(4)(l_UINT, l_UINT, l_UINT, l_UINT);
+  FUNCTOR_LIST(4)(unsigned int, unsigned int, unsigned int, unsigned int);
 
   //! makes functions with one float
-  FUNCTOR_LIST(1)(l_FLOAT);
+  FUNCTOR_LIST(1)(float);
   //! makes functions with two floats
-  FUNCTOR_LIST(2)(l_FLOAT, l_FLOAT);
+  FUNCTOR_LIST(2)(float, float);
   //! makes functions with three floats
-  FUNCTOR_LIST(3)(l_FLOAT, l_FLOAT, l_FLOAT);
+  FUNCTOR_LIST(3)(float, float, float);
   //! makes functions with four floats
-  FUNCTOR_LIST(4)(l_FLOAT, l_FLOAT, l_FLOAT, l_FLOAT);
+  FUNCTOR_LIST(4)(float, float, float, float);
   //! makes functions with four floats
-  FUNCTOR_LIST(5)(l_FLOAT, l_FLOAT, l_FLOAT, l_FLOAT, l_FLOAT);
+  FUNCTOR_LIST(5)(float, float, float, float, float);
 
   //! mixed values:
-  FUNCTOR_LIST(2)(l_STRING, l_INT);
-  FUNCTOR_LIST(2)(l_STRING, l_FLOAT);
-  FUNCTOR_LIST(2)(l_UINT, l_LONG);
-  FUNCTOR_LIST(2)(l_STRING, l_UINT);
+  FUNCTOR_LIST(2)(const std::string&, int);
+  FUNCTOR_LIST(2)(const std::string&, float);
+  FUNCTOR_LIST(2)(unsigned int, long);
+  FUNCTOR_LIST(2)(const std::string&, unsigned int);
 
-  FUNCTOR_LIST(3)(l_STRING, l_FLOAT, l_UINT);
-  FUNCTOR_LIST(4)(l_STRING, l_FLOAT, l_UINT, l_UINT);
-  FUNCTOR_LIST(3)(l_STRING, l_INT, l_UINT);
-  FUNCTOR_LIST(3)(l_STRING, l_UINT, l_UINT);
+  FUNCTOR_LIST(3)(const std::string&, float, unsigned int);
+  FUNCTOR_LIST(4)(const std::string&, float, unsigned int, unsigned int);
+  FUNCTOR_LIST(3)(const std::string&, int, unsigned int);
+  FUNCTOR_LIST(3)(const std::string&, unsigned int, unsigned int);
 
-  FUNCTOR_LIST(5)(l_FLOAT, l_FLOAT, l_FLOAT, l_FLOAT, l_STRING);
+  FUNCTOR_LIST(5)(float, float, float, float, const std::string&);
 
 #endif /* FUNCTOR_LIST */
