Index: trunk/src/lib/util/executor/executor.h
===================================================================
--- trunk/src/lib/util/executor/executor.h	(revision 8035)
+++ trunk/src/lib/util/executor/executor.h	(revision 8048)
@@ -53,10 +53,7 @@
     // EXECUTE
     /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-    virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const = 0;
+    virtual void operator()(BaseObject* object, unsigned int count, void* values) const = 0;
     /** executes a Command @param object the object to apply this to @param parameters the parameters the command takes */
     virtual void operator()(BaseObject* object, const SubString& sub = SubString()) const = 0;
-    /** executes a Command @param object the object to apply this to @param parameters the parameters the command takes @brief here for your convenience*/
-    void execute (BaseObject* object, const std::string& parameters = "") const { (*this)(object, parameters); };
-
 
     // RETRIEVE INFORMATION
Index: trunk/src/lib/util/executor/executor_functional.h
===================================================================
--- trunk/src/lib/util/executor/executor_functional.h	(revision 8035)
+++ trunk/src/lib/util/executor/executor_functional.h	(revision 8048)
@@ -123,5 +123,5 @@
 
   /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
+  virtual void operator()(BaseObject* object, unsigned int count, void* values) const
   {
     (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)();
@@ -163,8 +163,9 @@
 
   /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
-  {
+  virtual void operator()(BaseObject* object, unsigned int count, void* values) const
+  {
+    const MultiType* mt = (const MultiType*)values;
     return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-             fromMulti<type0>((count > 0)? values[0] : this->defaultValue[0]) );
+             fromMulti<type0>((count > 0)? mt[0] : this->defaultValue[0]) );
   }
 
@@ -226,9 +227,10 @@
 
   /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
-  {
+  virtual void operator()(BaseObject* object, unsigned int count, void* values) const
+  {
+    const MultiType* mt = (const MultiType*)values;
     return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-             fromMulti<type0>((count > 0) ? values[0] : this->defaultValue[0]),
-             fromMulti<type1>((count > 1) ? values[1] : this->defaultValue[1]) );
+             fromMulti<type0>((count > 0) ? mt[0] : this->defaultValue[0]),
+             fromMulti<type1>((count > 1) ? mt[1] : this->defaultValue[1]) );
   }
 
@@ -280,10 +282,11 @@
 
   /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
-  {
+  virtual void operator()(BaseObject* object, unsigned int count, void* values) const
+  {
+    const MultiType* mt = (const MultiType*)values;
     return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-             fromMulti<type0>((count > 0) ? values[0] : this->defaultValue[0]),
-             fromMulti<type1>((count > 1) ? values[1] : this->defaultValue[1]),
-             fromMulti<type2>((count > 2) ? values[2] : this->defaultValue[2]) );
+             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]) );
   }
 
@@ -337,11 +340,12 @@
 
   /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
-  {
+  virtual void operator()(BaseObject* object, unsigned int count, void* values) const
+  {
+    const MultiType* mt = (const MultiType*)values;
     return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-             fromMulti<type0>((count > 0) ? values[0] : this->defaultValue[0]),
-             fromMulti<type1>((count > 1) ? values[1] : this->defaultValue[1]),
-             fromMulti<type2>((count > 2) ? values[2] : this->defaultValue[2]),
-             fromMulti<type3>((count > 3) ? values[3] : this->defaultValue[3]) );
+             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]) );
   }
 
@@ -396,12 +400,13 @@
 
   /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
-  {
+  virtual void operator()(BaseObject* object, unsigned int count, void* values) const
+  {
+    const MultiType* mt = (const MultiType*)values;
     return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-             fromMulti<type0>((count > 0) ? values[0] : this->defaultValue[0]),
-             fromMulti<type1>((count > 1) ? values[1] : this->defaultValue[1]),
-             fromMulti<type2>((count > 2) ? values[2] : this->defaultValue[2]),
-             fromMulti<type3>((count > 3) ? values[3] : this->defaultValue[3]),
-             fromMulti<type4>((count > 4) ? values[4] : this->defaultValue[4]) );
+             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]) );
   }
 
@@ -421,6 +426,6 @@
  * @brief enables us to easily retrieve an Executor of Class T with modular Argument-count, (without thinking about args at all)
  */
-#define EXECUTOR_FUNCTIONAL_CREATOR0(ret) \
-template<class T> Executor* createExecutor(ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)() __EXECUTOR_FUNCTIONAL_CONST) \
+#define EXECUTOR_FUNCTIONAL_CREATOR0() \
+template<class T> Executor* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)() __EXECUTOR_FUNCTIONAL_CONST) \
 { \
   return new __EXECUTOR_FUNCTIONAL_NAME(0)<T>(functionPointer); \
@@ -431,6 +436,6 @@
  * @param type0 for internal usage: the first Argument
  */
-#define EXECUTOR_FUNCTIONAL_CREATOR1(ret, type0) \
-template<class T> Executor* createExecutor(ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
+#define EXECUTOR_FUNCTIONAL_CREATOR1(type0) \
+template<class T> Executor* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
 { \
   return new __EXECUTOR_FUNCTIONAL_NAME(1)<T, type0##_TYPE>(functionPointer); \
@@ -442,6 +447,6 @@
  * @param type1 for internal usage: the second Argument
  */
-#define EXECUTOR_FUNCTIONAL_CREATOR2(ret, type0, type1) \
-template<class T> Executor* createExecutor(ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
+#define EXECUTOR_FUNCTIONAL_CREATOR2(type0, type1) \
+template<class T> Executor* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
 { \
   return new __EXECUTOR_FUNCTIONAL_NAME(2)<T, type0##_TYPE, type1##_TYPE>(functionPointer); \
@@ -454,6 +459,6 @@
  * @param type2 for internal usage: the third Argument
  */
-#define EXECUTOR_FUNCTIONAL_CREATOR3(ret, type0, type1, type2) \
-template<class T> Executor* createExecutor(ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
+#define EXECUTOR_FUNCTIONAL_CREATOR3(type0, type1, type2) \
+template<class T> Executor* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
 { \
   return new __EXECUTOR_FUNCTIONAL_NAME(3)<T, type0##_TYPE, type1##_TYPE, type2##_TYPE>(functionPointer); \
@@ -467,6 +472,6 @@
  * @param type3 for internal usage: the fourth Argument
  */
-#define EXECUTOR_FUNCTIONAL_CREATOR4(ret, type0, type1, type2, type3) \
-template<class T> Executor* createExecutor(ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
+#define EXECUTOR_FUNCTIONAL_CREATOR4(type0, type1, type2, type3) \
+template<class T> Executor* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
 { \
   return new __EXECUTOR_FUNCTIONAL_NAME(4)<T, type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE>(functionPointer); \
@@ -481,6 +486,6 @@
  * @param type4 for internal usage: the fifth Argument
  */
-#define EXECUTOR_FUNCTIONAL_CREATOR5(ret, type0, type1, type2, type3, type4) \
-template<class T> Executor* createExecutor(ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
+#define EXECUTOR_FUNCTIONAL_CREATOR5(type0, type1, type2, type3, type4) \
+template<class T> Executor* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
 { \
     return new __EXECUTOR_FUNCTIONAL_NAME(5)<T, type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE>(functionPointer); \
Index: trunk/src/lib/util/executor/executor_specials.h
===================================================================
--- trunk/src/lib/util/executor/executor_specials.h	(revision 8035)
+++ 	(revision )
@@ -1,86 +1,0 @@
-/*!
- * @file executor.h
- * Definition of a on-screen-shell
- */
-
-#ifndef _EXECUTOR_SPECIALS_H
-#define _EXECUTOR_SPECIALS_H
-
-#include "executor.h"
-#include "compiler.h"
-
-#include "compiler.h"
-#include "parser/tinyxml/tinyxml.h"
-// FORWARD DECLARATION
-
-//! Executes a Function with a const TiXmlElement* parameter.
-/**
- * This is a Special Executor, that finds ParamName in root as XML-sub-element
- * This is especially usefull, if you have to Load a SubElement from root in a new Function
- * What must be defined is a XML-root to search the ParameterName under an  a Function to call.
- */
-template<class T> class ExecutorXML : public Executor
-{
-  public:
-    /**
-   * @brief Constructor of a ExecutorXML
-     * @param function a Function to call
-     * @param root The XML root to search paramName under
-     * @param paramName the ParameterName the search in root, and lookup the TiXmlElement from
-     */
-    ExecutorXML(void(T::*function)(const TiXmlElement*), const TiXmlElement* root, const char* paramName)
-      : Executor(MT_EXT1)
-    {
-      PRINTF(4)("Loading %s from XML-element %p\n", paramName, root);
-
-      if (likely(root != NULL && paramName != NULL))
-        this->element = root->FirstChildElement(paramName);
-      else
-        this->element = NULL;
-
-      this->functionPointer = function;
-      this->functorType = Executor_Objective | Executor_NoLoadString;
-    }
-
-    /**
-     * @brief clones an ExecutorXML, used to copy this Element.
-     * @returns a _new_ Copy of this Executor
-     */
-    virtual Executor* clone () const
-    {
-      ExecutorXML<T>* executor = new ExecutorXML<T>();
-      this->cloning(executor);
-      executor->functionPointer = this->functionPointer;
-      executor->element = this->element;
-      return executor;
-    }
-
-    /**
-     * @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
-    {
-      if (object != NULL && this->element != NULL)
-        (dynamic_cast<T*>(object)->*(functionPointer))(this->element);
-    }
-
-    virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
-    {
-
-    }
-
-  private:
-    /**
-   * @brief used for the copy-(Clone)-constructor
-     */
-    ExecutorXML() : Executor() { };
-
-
-  private:
-    void    (T::*functionPointer)(const TiXmlElement*);  //!< The functionPointer to the function to be called
-    const   TiXmlElement* element;                       //!< The XML-element to call.
-};
-
-#endif /* _EXECUTOR_SPECIALS_H */
Index: trunk/src/lib/util/executor/executor_xml.h
===================================================================
--- trunk/src/lib/util/executor/executor_xml.h	(revision 8048)
+++ trunk/src/lib/util/executor/executor_xml.h	(revision 8048)
@@ -0,0 +1,86 @@
+/*!
+ * @file executor.h
+ * Definition of a on-screen-shell
+ */
+
+#ifndef _EXECUTOR_SPECIALS_H
+#define _EXECUTOR_SPECIALS_H
+
+#include "executor.h"
+#include "compiler.h"
+
+#include "compiler.h"
+#include "parser/tinyxml/tinyxml.h"
+// FORWARD DECLARATION
+
+//! Executes a Function with a const TiXmlElement* parameter.
+/**
+ * This is a Special Executor, that finds ParamName in root as XML-sub-element
+ * This is especially usefull, if you have to Load a SubElement from root in a new Function
+ * What must be defined is a XML-root to search the ParameterName under an  a Function to call.
+ */
+template<class T> class ExecutorXML : public Executor
+{
+  public:
+    /**
+   * @brief Constructor of a ExecutorXML
+     * @param function a Function to call
+     * @param root The XML root to search paramName under
+     * @param paramName the ParameterName the search in root, and lookup the TiXmlElement from
+     */
+    ExecutorXML(void(T::*function)(const TiXmlElement*), const TiXmlElement* root, const char* paramName)
+      : Executor(MT_EXT1)
+    {
+      PRINTF(4)("Loading %s from XML-element %p\n", paramName, root);
+
+      if (likely(root != NULL && paramName != NULL))
+        this->element = root->FirstChildElement(paramName);
+      else
+        this->element = NULL;
+
+      this->functionPointer = function;
+      this->functorType = Executor_Objective | Executor_NoLoadString;
+    }
+
+    /**
+     * @brief clones an ExecutorXML, used to copy this Element.
+     * @returns a _new_ Copy of this Executor
+     */
+    virtual Executor* clone () const
+    {
+      ExecutorXML<T>* executor = new ExecutorXML<T>();
+      this->cloning(executor);
+      executor->functionPointer = this->functionPointer;
+      executor->element = this->element;
+      return executor;
+    }
+
+    /**
+     * @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
+    {
+      if (object != NULL && this->element != NULL)
+        (dynamic_cast<T*>(object)->*(functionPointer))(this->element);
+    }
+
+    virtual void operator()(BaseObject* object, unsigned int count, void* values) const
+    {
+      PRINTF(1)("missuse of XML-operator, OR IMPLEMENT.\n");
+    }
+
+  private:
+    /**
+   * @brief used for the copy-(Clone)-constructor
+     */
+    ExecutorXML() : Executor() { };
+
+
+  private:
+    void    (T::*functionPointer)(const TiXmlElement*);  //!< The functionPointer to the function to be called
+    const   TiXmlElement* element;                       //!< The XML-element to call.
+};
+
+#endif /* _EXECUTOR_SPECIALS_H */
Index: trunk/src/lib/util/executor/functor_list.h
===================================================================
--- trunk/src/lib/util/executor/functor_list.h	(revision 8035)
+++ trunk/src/lib/util/executor/functor_list.h	(revision 8048)
@@ -90,57 +90,57 @@
 #ifdef FUNCTOR_LIST
 
-  FUNCTOR_LIST(0)(void);
+  FUNCTOR_LIST(0)();
   //! makes functions with one string
-  FUNCTOR_LIST(1)(void, l_STRING);
+  FUNCTOR_LIST(1)(l_STRING);
   //! makes functions with two strings
-  FUNCTOR_LIST(2)(void, l_STRING, l_STRING);
+  FUNCTOR_LIST(2)(l_STRING, l_STRING);
   //! makes functions with three strings
-  FUNCTOR_LIST(3)(void, l_STRING, l_STRING, l_STRING);
+  FUNCTOR_LIST(3)(l_STRING, l_STRING, l_STRING);
   //! makes functions with four strings
-  FUNCTOR_LIST(4)(void, l_STRING, l_STRING, l_STRING, l_STRING);
+  FUNCTOR_LIST(4)(l_STRING, l_STRING, l_STRING, l_STRING);
 
 
   //! makes functions with one bool
-  FUNCTOR_LIST(1)(void, l_BOOL);
+  FUNCTOR_LIST(1)(l_BOOL);
 
   //! makes functions with one int
-  FUNCTOR_LIST(1)(void, l_INT);
+  FUNCTOR_LIST(1)(l_INT);
   //! makes functions with two ints
-  FUNCTOR_LIST(2)(void, l_INT, l_INT);
+  FUNCTOR_LIST(2)(l_INT, l_INT);
   //! makes functions with three ints
-  FUNCTOR_LIST(3)(void, l_INT, l_INT, l_INT);
+  FUNCTOR_LIST(3)(l_INT, l_INT, l_INT);
   //! makes functions with four ints
-  FUNCTOR_LIST(4)(void, l_INT, l_INT, l_INT, l_INT);
+  FUNCTOR_LIST(4)(l_INT, l_INT, l_INT, l_INT);
 
 
   //! makes functions with one unsigned int
-  FUNCTOR_LIST(1)(void, l_UINT);
+  FUNCTOR_LIST(1)(l_UINT);
   //! makes functions with two unsigned ints
-  FUNCTOR_LIST(2)(void, l_UINT, l_UINT);
+  FUNCTOR_LIST(2)(l_UINT, l_UINT);
   //! makes functions with three unsigned ints
-  FUNCTOR_LIST(3)(void, l_UINT, l_UINT, l_UINT);
+  FUNCTOR_LIST(3)(l_UINT, l_UINT, l_UINT);
   //! makes functions with four unsigned ints
-  FUNCTOR_LIST(4)(void, l_UINT, l_UINT, l_UINT, l_UINT);
+  FUNCTOR_LIST(4)(l_UINT, l_UINT, l_UINT, l_UINT);
 
   //! makes functions with one float
-  FUNCTOR_LIST(1)(void, l_FLOAT);
+  FUNCTOR_LIST(1)(l_FLOAT);
   //! makes functions with two floats
-  FUNCTOR_LIST(2)(void, l_FLOAT, l_FLOAT);
+  FUNCTOR_LIST(2)(l_FLOAT, l_FLOAT);
   //! makes functions with three floats
-  FUNCTOR_LIST(3)(void, l_FLOAT, l_FLOAT, l_FLOAT);
+  FUNCTOR_LIST(3)(l_FLOAT, l_FLOAT, l_FLOAT);
   //! makes functions with four floats
-  FUNCTOR_LIST(4)(void, l_FLOAT, l_FLOAT, l_FLOAT, l_FLOAT);
+  FUNCTOR_LIST(4)(l_FLOAT, l_FLOAT, l_FLOAT, l_FLOAT);
   //! makes functions with four floats
-  FUNCTOR_LIST(5)(void, l_FLOAT, l_FLOAT, l_FLOAT, l_FLOAT, l_FLOAT);
+  FUNCTOR_LIST(5)(l_FLOAT, l_FLOAT, l_FLOAT, l_FLOAT, l_FLOAT);
 
   //! mixed values:
-  FUNCTOR_LIST(2)(void, l_STRING, l_FLOAT);
-  FUNCTOR_LIST(2)(void, l_UINT, l_LONG);
-  FUNCTOR_LIST(2)(void, l_STRING, l_UINT);
+  FUNCTOR_LIST(2)(l_STRING, l_FLOAT);
+  FUNCTOR_LIST(2)(l_UINT, l_LONG);
+  FUNCTOR_LIST(2)(l_STRING, l_UINT);
 
-  FUNCTOR_LIST(3)(void, l_STRING, l_FLOAT, l_UINT);
-  FUNCTOR_LIST(4)(void, l_STRING, l_FLOAT, l_UINT, l_UINT);
-  FUNCTOR_LIST(3)(void, l_STRING, l_INT, l_UINT);
-  FUNCTOR_LIST(3)(void, l_STRING, l_UINT, l_UINT);
+  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);
 
 #endif /* FUNCTOR_LIST */
Index: trunk/src/lib/util/loading/load_param.h
===================================================================
--- trunk/src/lib/util/loading/load_param.h	(revision 8035)
+++ trunk/src/lib/util/loading/load_param.h	(revision 8048)
@@ -25,5 +25,5 @@
 
 #include "executor/executor.h"
-#include "executor/executor_specials.h"
+#include "executor/executor_xml.h"
 
 // Forward Declaration //
