Index: trunk/src/lib/util/executor/executor.cc
===================================================================
--- trunk/src/lib/util/executor/executor.cc	(revision 7201)
+++ trunk/src/lib/util/executor/executor.cc	(revision 7221)
@@ -105,16 +105,9 @@
   value[4] = &value4;
 
-  printf("%s ::: paramCount: %d\n", this->getName(), this->paramCount);
   for (unsigned int i = 0; i < this->paramCount; i++)
   {
     if (*value[i] != MT_NULL)
     {
-      printf("1:::: %d : %s \n",i, MultiType::MultiTypeToString(this->defaultValue[i].getType()));
-
-      this->defaultValue[i].debug();
-      //this->defaultValue[i].setValueOf(*value[i]);
-      //printf("2::::%s\n", MultiType::MultiTypeToString(this->defaultValue[i].getType()));
-      //this->defaultValue[i].debug();
-    //this->defaultValue[i].setValueOf(*value[i]);
+      this->defaultValue[i].setValueOf(*value[i]);
     }
   }
Index: trunk/src/lib/util/executor/executor.h
===================================================================
--- trunk/src/lib/util/executor/executor.h	(revision 7201)
+++ trunk/src/lib/util/executor/executor.h	(revision 7221)
@@ -16,8 +16,8 @@
 //! an enumerator for the definition of the Type.
 typedef enum {
-  Executor_Objective         = 0x00000001,
-  Executor_Static            = 0x00000002,
-
-  Executor_NoLoadString      = 0x00000010,
+  Executor_Objective         = 1,
+  Executor_Static            = 2,
+
+  Executor_NoLoadString      = 8,
 } Executor_Type;
 
@@ -48,5 +48,5 @@
 
     /** executes a Command @param object the object to apply this to @param parameters the parameters the command takes */
-    virtual void execute (BaseObject* object, const void* parameters = NULL) = 0;
+    virtual void execute (BaseObject* object, const std::string& parameters = "") = 0;
 
     /** @returns the Type of this Function (either static or objective) */
@@ -87,4 +87,6 @@
 #define   l_FLOAT_DEFGRAB(i)        this->defaultValue[i].getFloat()
 //! where to chek for default STRING values
+#define   l_STRING_DEFGRAB(i)       this->defaultValue[i].getString()
+//! where to chek for default CSTRING values
 #define   l_CSTRING_DEFGRAB(i)      this->defaultValue[i].getCString()
 
@@ -190,20 +192,20 @@
 #define ExecutorExecute1(t1) \
    else if (this->paramCount == 1 && this->defaultValue[0] == t1##_PARAM) \
-    EXECUTOREXECUTER(_1_##t1)(t1##_FUNC((const char*)parameters, t1##_DEFGRAB(0)))
+    EXECUTOREXECUTER(_1_##t1)(t1##_FUNC(sub[0], t1##_DEFGRAB(0)))
 
 //! execute-macro for functions with two parameters
 #define ExecutorExecute2(t1,t2) \
    else if (this->paramCount == 2 && this->defaultValue[0] == t1##_PARAM && this->defaultValue[1] == t2##_PARAM) \
-    EXECUTOREXECUTER(_2_##t1##_##t2)(t1##_FUNC(sub.getString(0), t1##_DEFGRAB(0)), t2##_FUNC(sub.getString(1), t2##_DEFGRAB(1)))
+    EXECUTOREXECUTER(_2_##t1##_##t2)(t1##_FUNC(sub[0], t1##_DEFGRAB(0)), t2##_FUNC(sub[1], t2##_DEFGRAB(1)))
 
 //! execute-macro for functions with three parameters
 #define ExecutorExecute3(t1,t2,t3) \
    else if (this->paramCount == 3 && this->defaultValue[0] == t1##_PARAM && this->defaultValue[1] == t2##_PARAM && this->defaultValue[2] == t3##_PARAM) \
-    EXECUTOREXECUTER(_3_##t1##_##t2##_##t3)(t1##_FUNC(sub.getString(0), t1##_DEFGRAB(0)), t2##_FUNC(sub.getString(1), t2##_DEFGRAB(1)), t3##_FUNC(sub.getString(2), t3##_DEFGRAB(2)))
+    EXECUTOREXECUTER(_3_##t1##_##t2##_##t3)(t1##_FUNC(sub[0], t1##_DEFGRAB(0)), t2##_FUNC(sub[1], t2##_DEFGRAB(1)), t3##_FUNC(sub[2], t3##_DEFGRAB(2)))
 
 //! execute-macro for functions with four parameters
 #define ExecutorExecute4(t1,t2,t3,t4) \
    else if (this->paramCount == 4 && this->defaultValue[0] == t1##_PARAM && this->defaultValue[1] == t2##_PARAM && this->defaultValue[2] == t3##_PARAM && this->defaultValue[3] == t4##_PARAM) \
-    EXECUTOREXECUTER(_4_##t1##_##t2##_##t3##_##t4)(t1##_FUNC(sub.getString(0), t1##_DEFGRAB(0)), t2##_FUNC(sub.getString(1), t2##_DEFGRAB(1)), t3##_FUNC(sub.getString(2), t3##_DEFGRAB(2)), t4##_FUNC(sub.getString(3), t4##_DEFGRAB(3))) \
+    EXECUTOREXECUTER(_4_##t1##_##t2##_##t3##_##t4)(t1##_FUNC(sub[0], t1##_DEFGRAB(0)), t2##_FUNC(sub[1], t2##_DEFGRAB(1)), t3##_FUNC(sub[2], t3##_DEFGRAB(2)), t4##_FUNC(sub[3], t4##_DEFGRAB(3))) \
 
 
@@ -211,5 +213,5 @@
 #define ExecutorExecute5(t1,t2,t3,t4,t5) \
    else if (this->paramCount == 5 && this->defaultValue[0] == t1##_PARAM && this->defaultValue[1] == t2##_PARAM && this->defaultValue[2] == t3##_PARAM && this->defaultValue[3] == t4##_PARAM && this->defaultValue[4] == t5##_PARAM) \
-    EXECUTOREXECUTER(_5_##t1##_##t2##_##t3##_##t4##_##t5)(t1##_FUNC(sub.getString(0), t1##_DEFGRAB(0)), t2##_FUNC(sub.getString(1), t2##_DEFGRAB(1)), t3##_FUNC(sub.getString(2), t3##_DEFGRAB(2)), t4##_FUNC(sub.getString(3), t4##_DEFGRAB(3)), t5##_FUNC(sub.getString(4), t5##_DEFGRAB(4)))
+    EXECUTOREXECUTER(_5_##t1##_##t2##_##t3##_##t4##_##t5)(t1##_FUNC(sub[0], t1##_DEFGRAB(0)), t2##_FUNC(sub[1], t2##_DEFGRAB(1)), t3##_FUNC(sub[2], t3##_DEFGRAB(2)), t4##_FUNC(sub[3], t4##_DEFGRAB(3)), t5##_FUNC(sub[4], t5##_DEFGRAB(4)))
 
 
@@ -240,12 +242,12 @@
 #define EXECUTORTYPE                   Executor_Objective
 //! keeps information about a Executor
-template<class T> class ExecutorObjective : public Executor
+template<class T> class EXECUTOR : public Executor
 {
   public:
-    ExecutorObjective() : Executor() { };
+    EXECUTOR() : Executor() { };
     // COPY constuctor (virtual version)
     virtual Executor* clone () const
     {
-      ExecutorObjective<T>* executor = new ExecutorObjective<T>();
+      EXECUTOR<T>* executor = new EXECUTOR<T>();
       this->cloning(executor);
       executor->fp = this->fp;
@@ -266,8 +268,8 @@
     } fp;
 
-    virtual void execute (BaseObject* object, const void* parameters = NULL)
+    virtual void execute (BaseObject* object, const std::string& parameters = "")
     {
-      SubString sub((const char*) parameters, " \n\t,", '\\');
-      printf("%s :: %s\n", this->getName(), (const char*) parameters);
+      SubString sub;
+      sub.split(parameters, " \n\t,", '\\');
 //! FUNCTOR_LIST is the List of Executive Functions
 #define FUNCTOR_LIST(x) ExecutorExecute ## x
@@ -305,9 +307,9 @@
 {
   public:
-    ExecutorStatic() : Executor() { };
+    EXECUTOR() : Executor() { };
     // COPY constuctor
     virtual Executor* clone () const
     {
-      ExecutorStatic<T>* executor = new ExecutorStatic<T>();
+      EXECUTOR<T>* executor = new EXECUTOR<T>();
       this->cloning(executor);
       executor->fp = this->fp;
@@ -329,7 +331,8 @@
 
 
-    virtual void execute (BaseObject* object, const void* parameters = NULL)
+    virtual void execute (BaseObject* object, const std::string& parameters = "")
     {
-  SubString sub((const char*)parameters, " \n\t,");
+      SubString sub;
+      sub.split(parameters, " \n\t,", '\\');
 //! FUNCTOR_LIST is the List of Executive Functions
 #define FUNCTOR_LIST(x) ExecutorExecute ## x
Index: trunk/src/lib/util/executor/executor_specials.h
===================================================================
--- trunk/src/lib/util/executor/executor_specials.h	(revision 7201)
+++ trunk/src/lib/util/executor/executor_specials.h	(revision 7221)
@@ -60,5 +60,5 @@
      * @param loadString ignored in this case
      */
-    virtual void execute(BaseObject* object, const void* parameters = NULL)
+    virtual void execute(BaseObject* object, const std::string& = "")
     {
       if (object != NULL && this->element != NULL)
Index: trunk/src/lib/util/executor/functor_list.h
===================================================================
--- trunk/src/lib/util/executor/functor_list.h	(revision 7201)
+++ trunk/src/lib/util/executor/functor_list.h	(revision 7221)
@@ -21,5 +21,5 @@
    l_SHORT:     short
    l_FLOAT:     float
-   l_CSTRING:    const char*
+   l_STRING:    const std::string&
    l_XML_ELEM:  TiXmlElement*
  */
@@ -74,14 +74,8 @@
 //#define l_VECTOR_DEFAULT   Vector(0,0,0)        //!< Default value for a VECTOR
 
-#define l_CSTRING_TYPE     const char*          //!< The type of a STRING
-#define l_CSTRING_FUNC     isString             //!< The function to parse a STRING
-#define l_CSTRING_NAME     "string"             //!< The name of a STRING
-#define l_CSTRING_PARAM    MT_STRING            //!< the type of the parameter STRING
-#define l_CSTRING_DEFAULT  ""                   //!< a default Value for an STRING
-
 #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_NAME      "string"             //!< The name of a STRING
-#define l_STRING_PARAM     MT_STRING            //!< the type of the parameter STRING
+#define l_STRING_PARAM     MT_STRING           //!< the type of the parameter STRING
 #define l_STRING_DEFAULT   ""                   //!< a default Value for an STRING
 
@@ -99,11 +93,12 @@
   FUNCTOR_LIST(0)();
   //! makes functions with one string
-  FUNCTOR_LIST(1)(l_CSTRING);
+  FUNCTOR_LIST(1)(l_STRING);
   //! makes functions with two strings
-  FUNCTOR_LIST(2)(l_CSTRING, l_CSTRING);
+  FUNCTOR_LIST(2)(l_STRING, l_STRING);
   //! makes functions with three strings
-  FUNCTOR_LIST(3)(l_CSTRING, l_CSTRING, l_CSTRING);
+  FUNCTOR_LIST(3)(l_STRING, l_STRING, l_STRING);
   //! makes functions with four strings
-  FUNCTOR_LIST(4)(l_CSTRING, l_CSTRING, l_CSTRING, l_CSTRING);
+  FUNCTOR_LIST(4)(l_STRING, l_STRING, l_STRING, l_STRING);
+
 
   //! makes functions with one bool
@@ -141,9 +136,9 @@
 
   //! mixed values:
-  FUNCTOR_LIST(2)(l_CSTRING, l_FLOAT);
+  FUNCTOR_LIST(2)(l_STRING, l_FLOAT);
   FUNCTOR_LIST(2)(l_UINT, l_LONG);
-  FUNCTOR_LIST(2)(l_CSTRING, l_UINT);
+  FUNCTOR_LIST(2)(l_STRING, l_UINT);
 
-  FUNCTOR_LIST(3)(l_CSTRING, l_FLOAT, l_UINT);
+  FUNCTOR_LIST(3)(l_STRING, l_FLOAT, l_UINT);
 
 
