Index: trunk/src/lib/shell/shell_command.cc
===================================================================
--- trunk/src/lib/shell/shell_command.cc	(revision 7330)
+++ trunk/src/lib/shell/shell_command.cc	(revision 7331)
@@ -184,8 +184,8 @@
             {
 
-              (*alias)->getCommand()->executor->execute(objectList->front(), inputSplits.getSubSet(1).join()); /// TODO CHECK IF OK
+              (*(*alias)->getCommand()->executor)(objectList->front(), inputSplits.getSubSet(1).join()); /// TODO CHECK IF OK
             }
             else
-              (*alias)->getCommand()->executor->execute(objectList->front(), "");
+              (*(*alias)->getCommand()->executor)(objectList->front(), "");
            return true;
           }
@@ -241,7 +241,7 @@
               return false;
             if (inputSplits.size() > fktPos+1)
-              (*cmdIT)->executor->execute(objectPointer, inputSplits.getSubSet(2).join()); /// TODO CHECK IF OK
+              (*(*cmdIT)->executor)(objectPointer, inputSplits.getSubSet(2).join()); /// TODO CHECK IF OK
             else
-              (*cmdIT)->executor->execute(objectPointer, "");
+              (*(*cmdIT)->executor)(objectPointer, "");
             return true;
           }
Index: trunk/src/lib/sound/ogg_player.h
===================================================================
--- trunk/src/lib/sound/ogg_player.h	(revision 7330)
+++ trunk/src/lib/sound/ogg_player.h	(revision 7331)
@@ -89,13 +89,4 @@
   SDL_Thread*         musicThreadID;        //!< The Thread in which music is Played back.
   SDL_mutex*          musicMutex;           //!< A Mutex so that the two threads do not interfere.
-
-  class MutexLock
-  {
-  public:
-    MutexLock(SDL_mutex* mutex) { SDL_mutexP(mutex); this->mutex = mutex; };
-    ~MutexLock() { SDL_mutexV(mutex); };
-  private:
-    SDL_mutex* mutex;
-  };
 };
 
Index: trunk/src/lib/util/executor/executor.h
===================================================================
--- trunk/src/lib/util/executor/executor.h	(revision 7330)
+++ trunk/src/lib/util/executor/executor.h	(revision 7331)
@@ -34,5 +34,5 @@
  *  Default Values
  *  Functions with up to 5 parameters (more seems useless)
- *  Functions with many types (see functor_list.h)
+ *  Functions with many types (@see functor_list.h)
  */
 class Executor: public BaseObject
@@ -43,11 +43,16 @@
     virtual Executor* clone () const = 0;
 
+    // SETTING up the EXECUTOR
     Executor* defaultValues(const MultiType& value0 = MT_NULL, const MultiType& value1 = MT_NULL,
                             const MultiType& value2 = MT_NULL, const MultiType& value3 = MT_NULL,
                             const MultiType& value4 = MT_NULL);
 
+    // EXECUTE
     /** executes a Command @param object the object to apply this to @param parameters the parameters the command takes */
-    virtual void execute (BaseObject* object, const std::string& parameters = "") = 0;
-
+    virtual void operator()(BaseObject* object, const std::string& parameters = "") = 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 = "") { (*this)(object, parameters); };
+
+    // RETRIEVE INFORMATION
     /** @returns the Type of this Function (either static or objective) */
     inline long getType() const { return this->functorType; };
@@ -65,5 +70,5 @@
 
   protected:
-    long                        functorType;      //!< The type of Function we've got (either static or objective).
+    short                       functorType;      //!< The type of Function we've got (either static or objective).
     unsigned int                paramCount;       //!< the count of parameters.
     MultiType                   defaultValue[5];  //!< Default Values.
@@ -72,22 +77,4 @@
 ///////////////////////////////////////////////////
 ///////////////////////////////////////////////////
-
-/////////////////////////////////
-// MACRO DEFINITION EXTENSIONS //
-/////////////////////////////////
-//! where to chek for default BOOL values
-#define   l_BOOL_DEFGRAB(i)         this->defaultValue[i].getBool()
-//! where to chek for default INT values
-#define   l_INT_DEFGRAB(i)          this->defaultValue[i].getInt()
-//! where to chek for default UINT values
-#define   l_UINT_DEFGRAB(i)         (unsigned int)this->defaultValue[i].getInt()
-//! where to chek for default LONG values
-#define   l_LONG_DEFGRAB(i)         (long)this->defaultValue[i].getInt()
-//! where to chek for default FLOAT values
-#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()
 
 //////////////////////////
@@ -267,5 +254,5 @@
     } fp;
 
-    virtual void execute (BaseObject* object, const std::string& parameters = "")
+    virtual void operator()(BaseObject* object, const std::string& parameters = "")
     {
       SubString sub;
@@ -330,5 +317,5 @@
 
 
-    virtual void execute (BaseObject* object, const std::string& parameters = "")
+    virtual void operator()(BaseObject* object, const std::string& parameters = "")
     {
       SubString sub;
Index: trunk/src/lib/util/executor/executor_specials.h
===================================================================
--- trunk/src/lib/util/executor/executor_specials.h	(revision 7330)
+++ trunk/src/lib/util/executor/executor_specials.h	(revision 7331)
@@ -23,5 +23,5 @@
   public:
     /**
-     * Constructor of a ExecutorXML
+   * @brief Constructor of a ExecutorXML
      * @param function a Function to call
      * @param root The XML root to search paramName under
@@ -43,5 +43,5 @@
 
     /**
-     * clones an ExecutorXML, used to copy this Element.
+     * @brief clones an ExecutorXML, used to copy this Element.
      * @returns a _new_ Copy of this Executor
      */
@@ -56,9 +56,9 @@
 
     /**
-     * executes the Command on BaseObject
+     * @brief executes the Command on BaseObject
      * @param object the BaseObject to execute this Executor on
      * @param loadString ignored in this case
      */
-    virtual void execute(BaseObject* object, const std::string& = "")
+    virtual void operator()(BaseObject* object, const std::string& = "")
     {
       if (object != NULL && this->element != NULL)
@@ -68,5 +68,5 @@
   private:
     /**
-     * used for the copy-(Clone)-constructor
+   * @brief used for the copy-(Clone)-constructor
      */
     ExecutorXML() : Executor() { };
Index: trunk/src/lib/util/executor/functor_list.h
===================================================================
--- trunk/src/lib/util/executor/functor_list.h	(revision 7330)
+++ trunk/src/lib/util/executor/functor_list.h	(revision 7331)
@@ -32,28 +32,28 @@
 #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_NAME        "bool"               //!< The name of an 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_NAME         "int"                //!< The name of an 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_NAME        "unsigned int"       //!< The name of an 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_NAME        "long"               //!< The name of 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
@@ -65,7 +65,7 @@
 #define l_FLOAT_TYPE       float                //!< The type of a FLOAT
 #define l_FLOAT_FUNC       isFloat              //!< The function to parse a FLOAT
-#define l_FLOAT_NAME       "float"              //!< The name of 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
@@ -76,11 +76,10 @@
 #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
+#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_NAME    "XML"                //!< The name of 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
Index: trunk/src/lib/util/loading/load_param.cc
===================================================================
--- trunk/src/lib/util/loading/load_param.cc	(revision 7330)
+++ trunk/src/lib/util/loading/load_param.cc	(revision 7331)
@@ -67,5 +67,5 @@
     {
       PRINTF(4)("Loading value '%s' with Parameters '%s' onto: %s::%s\n", this->paramName.c_str(), loadString.c_str(), this->object->getClassName(), this->object->getName());
-      this->executor->execute(this->object, loadString);
+      (*this->executor)(this->object, loadString);
     }
     delete this->executor;
Index: trunk/src/lib/util/threading.h
===================================================================
--- trunk/src/lib/util/threading.h	(revision 7330)
+++ trunk/src/lib/util/threading.h	(revision 7331)
@@ -17,14 +17,27 @@
 
 //! A class for Wrapping Threads
-class Threading {
+class Threading
+{
 
- public:
+public:
   Threading();
   virtual ~Threading();
 
 
- private:
+private:
 
 };
 
+//! A Class that locks a Mutex within its scope
+class MutexLock
+{
+public:
+  //! Locks the Mutex mutex in this Scope.
+  MutexLock(SDL_mutex* mutex) { SDL_mutexP(mutex); this->mutex = mutex; };
+  ~MutexLock() { SDL_mutexV(mutex); };
+private:
+  SDL_mutex* mutex;         //!< The Mutex to lock.
+};
+
+
 #endif /* _THREADING_H */
