Index: branches/new_class_id/src/lib/util/Makefile.am
===================================================================
--- branches/new_class_id/src/lib/util/Makefile.am	(revision 9745)
+++ branches/new_class_id/src/lib/util/Makefile.am	(revision 9746)
@@ -8,5 +8,4 @@
 libORXexecutor_a_SOURCES = \
 		executor/executor.cc \
-		executor/executor_lua.cc \
 		executor/executor_lua_state.cc \
 		executor/executor_substring.cc
@@ -49,5 +48,4 @@
 		executor/executor.h \
 		executor/executor_xml.h \
-		executor/executor_lua.h \
 		executor/executor_lua_state.h \
 		executor/executor_substring.h \
Index: branches/new_class_id/src/lib/util/executor/executor_generic.h
===================================================================
--- branches/new_class_id/src/lib/util/executor/executor_generic.h	(revision 9745)
+++ branches/new_class_id/src/lib/util/executor/executor_generic.h	(revision 9746)
@@ -74,8 +74,6 @@
    */
   __EXECUTOR_FUNCTIONAL_NAME(0,) (void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)() __EXECUTOR_FUNCTIONAL_CONST )
-      : Executor<CallType, BaseClass>(false, __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE)
-  {
-    this->functionPointer = functionPointer;
-  };
+      : Executor<CallType, BaseClass>(false, __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE), functionPointer(functionPointer)
+  {};
 
   /**
@@ -118,8 +116,6 @@
    */
   __EXECUTOR_FUNCTIONAL_NAME(1,) (void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0) __EXECUTOR_FUNCTIONAL_CONST)
-      : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE)
-  {
-    this->functionPointer = functionPointer;
-  };
+      : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE), functionPointer(functionPointer)
+  {};
 
   /**
@@ -163,8 +159,6 @@
    */
   __EXECUTOR_FUNCTIONAL_NAME(2,) (void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1) __EXECUTOR_FUNCTIONAL_CONST)
-      : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE)
-  {
-    this->functionPointer = functionPointer;
-  };
+      : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE), functionPointer(functionPointer)
+  {};
 
   /**
@@ -209,8 +203,6 @@
    */
   __EXECUTOR_FUNCTIONAL_NAME(3,) (void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1, type2) __EXECUTOR_FUNCTIONAL_CONST)
-      : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE)
-  {
-    this->functionPointer = functionPointer;
-  };
+      : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE), functionPointer(functionPointer)
+  {};
 
   /**
@@ -256,8 +248,6 @@
    */
   __EXECUTOR_FUNCTIONAL_NAME(4,) (void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1, type2, type3) __EXECUTOR_FUNCTIONAL_CONST)
-      : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), ExecutorParamType<type3>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE)
-  {
-    this->functionPointer = functionPointer;
-  };
+      : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), ExecutorParamType<type3>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE), functionPointer(functionPointer)
+  {};
 
   /**
@@ -304,8 +294,6 @@
    */
   __EXECUTOR_FUNCTIONAL_NAME(5,) (void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1, type2, type3, type4) __EXECUTOR_FUNCTIONAL_CONST)
-      : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), ExecutorParamType<type3>(), ExecutorParamType<type4>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE)
-  {
-    this->functionPointer = functionPointer;
-  };
+      : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), ExecutorParamType<type3>(), ExecutorParamType<type4>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE), functionPointer(functionPointer)
+  {};
 
   /**
@@ -334,3 +322,128 @@
 };
 
+
+////////////////////
+//// 0 & RETURN ////
+////////////////////
+//! @brief ExecutorClass, that can execute Functions with one parameter.
+template<class T, typename CallType, typename ret, template<typename> class Evaluater = ExecutorEvaluater, class BaseClass = BaseObject>
+class __EXECUTOR_FUNCTIONAL_NAME(0,ret) : public Executor<CallType, BaseClass>
+{
+private:
+  /** @brief the FunctioPointer. */
+  ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)() __EXECUTOR_FUNCTIONAL_CONST;
+
+public:
+  /**
+   * @brief constructs the Executor.
+   * @param __EXECUTOR_FUNCTIONAL_FUNCTION_POINTER the FunctionPointer to the Calling Function.
+   */
+  __EXECUTOR_FUNCTIONAL_NAME(0,ret) (ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)() __EXECUTOR_FUNCTIONAL_CONST)
+      : Executor<CallType, BaseClass>(true, __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE), functionPointer(functionPointer)
+  {};
+
+  /**
+     * @brief executes the Functional
+     * @param object the Object the action should be executed on.
+     * @param eval the CallType to get the Parameters from.
+   */
+  virtual void operator()(BaseObject* object, CallType& eval = Evaluater<CallType>::defaultValue()) const
+  {
+    Evaluater<CallType>().template storeRet<ret>(eval, (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)());
+  };
+
+  /**
+     * @brief copies the Executor
+     * @returns a new Executor that's a copy of this one.
+   */
+  virtual Executor<CallType, BaseClass>* clone() const
+  {
+    return  new __EXECUTOR_FUNCTIONAL_NAME(0,ret)<T, CallType, ret>(this->functionPointer);
+  };
+};
+
+////////////////////
+//// 1 & RETURN ////
+////////////////////
+//! @brief ExecutorClass, that can execute Functions with one parameter.
+template<class T, typename CallType, typename ret, typename type0, template<typename> class Evaluater = ExecutorEvaluater, class BaseClass = BaseObject>
+class __EXECUTOR_FUNCTIONAL_NAME(1,ret) : public Executor<CallType, BaseClass>
+{
+private:
+  /** @brief the FunctioPointer. */
+  ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0) __EXECUTOR_FUNCTIONAL_CONST;
+
+public:
+  /**
+   * @brief constructs the Executor.
+   * @param __EXECUTOR_FUNCTIONAL_FUNCTION_POINTER the FunctionPointer to the Calling Function.
+   */
+  __EXECUTOR_FUNCTIONAL_NAME(1,ret) (ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0) __EXECUTOR_FUNCTIONAL_CONST)
+      : Executor<CallType, BaseClass>(true, ExecutorParamType<type0>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE), functionPointer(functionPointer)
+  {};
+
+  /**
+     * @brief executes the Functional
+     * @param object the Object the action should be executed on.
+     * @param eval the CallType to get the Parameters from.
+   */
+  virtual void operator()(BaseObject* object, CallType& eval = Evaluater<CallType>::defaultValue()) const
+  {
+    Evaluater<CallType>().template storeRet<ret>(eval, (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
+          Evaluater<CallType>().template operator()<type0, 0>(eval, this->defaultValue)));
+  };
+
+  /**
+     * @brief copies the Executor
+     * @returns a new Executor that's a copy of this one.
+   */
+  virtual Executor<CallType, BaseClass>* clone() const
+  {
+    return  new __EXECUTOR_FUNCTIONAL_NAME(1,ret)<T, CallType, ret, type0>(this->functionPointer);
+  };
+};
+
+
+////////////////////
+//// 1 & RETURN ////
+////////////////////
+//! @brief ExecutorClass, that can execute Functions with one parameter.
+template<class T, typename CallType, typename ret, typename type0, typename type1, template<typename> class Evaluater = ExecutorEvaluater, class BaseClass = BaseObject>
+class __EXECUTOR_FUNCTIONAL_NAME(2,ret) : public Executor<CallType, BaseClass>
+{
+private:
+  /** @brief the FunctioPointer. */
+  ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1) __EXECUTOR_FUNCTIONAL_CONST;
+
+public:
+  /**
+   * @brief constructs the Executor.
+   * @param __EXECUTOR_FUNCTIONAL_FUNCTION_POINTER the FunctionPointer to the Calling Function.
+   */
+  __EXECUTOR_FUNCTIONAL_NAME(2,ret) (ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1) __EXECUTOR_FUNCTIONAL_CONST)
+      : Executor<CallType, BaseClass>(true, ExecutorParamType<type0>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE), functionPointer(functionPointer)
+  {};
+
+  /**
+     * @brief executes the Functional
+     * @param object the Object the action should be executed on.
+     * @param eval the CallType to get the Parameters from.
+   */
+  virtual void operator()(BaseObject* object, CallType& eval = Evaluater<CallType>::defaultValue()) const
+  {
+    Evaluater<CallType>().template storeRet<ret>(eval, (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
+          Evaluater<CallType>().template operator()<type0, 0>(eval, this->defaultValue),
+          Evaluater<CallType>().template operator()<type1, 1>(eval, this->defaultValue)));
+  };
+
+  /**
+     * @brief copies the Executor
+     * @returns a new Executor that's a copy of this one.
+   */
+  virtual Executor<CallType, BaseClass>* clone() const
+  {
+    return  new __EXECUTOR_FUNCTIONAL_NAME(2,ret)<T, CallType, ret, type0, type1>(this->functionPointer);
+  };
+};
+
 #endif /* __EXECUTOR_FUNCTIONAL_NAME */
Index: branches/new_class_id/src/lib/util/executor/executor_lua_state.h
===================================================================
--- branches/new_class_id/src/lib/util/executor/executor_lua_state.h	(revision 9745)
+++ branches/new_class_id/src/lib/util/executor/executor_lua_state.h	(revision 9746)
@@ -66,4 +66,9 @@
     return (fromLua<ToType>(CallValue, index));
   }
+  template <typename ToType>
+  void storeRet(lua_State*& state, ToType value)
+  {
+    toLua<ToType>(state, value);
+  }
   static lua_State*& defaultValue() { static lua_State* nullState; return nullState; };
 };
