Index: trunk/src/lib/util/executor/executor.h
===================================================================
--- trunk/src/lib/util/executor/executor.h	(revision 8362)
+++ trunk/src/lib/util/executor/executor.h	(revision 8408)
@@ -33,5 +33,5 @@
  *  Objects of any Class (Templated)
  *  Default Values
- *  Functions with up to 5 parameters (more seems useless)
+ *  Functions with up to 5 parameters (more seems overhead, split up the function)
  *  Functions with many types (@see functor_list.h)
  */
Index: trunk/src/lib/util/executor/executor_functional.cc
===================================================================
--- trunk/src/lib/util/executor/executor_functional.cc	(revision 8362)
+++ trunk/src/lib/util/executor/executor_functional.cc	(revision 8408)
@@ -15,7 +15,5 @@
 
 #include "executor.h"
-
-std::string ExecutorFunctional_returningString_from;
-std::string ExecutorFunctional_returningString_default;
+std::string ExecutorFunctional_returningString_from[5];
 
 
@@ -32,5 +30,5 @@
 template<> float fromString<float>(const std::string& input, float defaultValue) { return isFloat(input, defaultValue); };
 template<> char fromString<char>(const std::string& input, char defaultValue) { return isInt(input, defaultValue); };
-template<> const std::string& fromString<const std::string&>(const std::string& input, const std::string& defaultValue) { return ExecutorFunctional_returningString_from = isString(input, defaultValue); };
+template<> const std::string& fromString<const std::string&>(const std::string& input, const std::string& defaultValue) { return (input.size() > 0) ? input : defaultValue; };
 
 
@@ -48,5 +46,5 @@
 template<> float getDefault<float>(const MultiType* const defaultValues, unsigned int i) { return defaultValues[i].getFloat(); };
 template<> char getDefault<char>(const MultiType* const defaultValues, unsigned int i) { return defaultValues[i].getChar(); };
-template<> const std::string& getDefault<const std::string&>(const MultiType* const defaultValues, unsigned int i) { return ExecutorFunctional_returningString_default = defaultValues[i].getString(); };
+template<> const std::string& getDefault<const std::string&>(const MultiType* const defaultValues, unsigned int i) { return ExecutorFunctional_returningString_from[i] = defaultValues[i].getString(); };
 
 
Index: trunk/src/lib/util/executor/executor_lua.cc
===================================================================
--- trunk/src/lib/util/executor/executor_lua.cc	(revision 8362)
+++ trunk/src/lib/util/executor/executor_lua.cc	(revision 8408)
@@ -18,6 +18,9 @@
 #include "executor_lua.h"
 
-std::string temp;
+#include "lunar.h"
 
+std::string temp[5];
+
+template<typename type> type* fromLua(lua_State* state, int index) { type *obj = Lunar<type>::check(state, 1); lua_remove(state, 1); return obj;};
 template<> bool fromLua<bool>(lua_State* state, int index) { return lua_toboolean(state, index); };
 template<> int fromLua<int>(lua_State* state, int index) { return (int)lua_tonumber(state, index); };
@@ -25,8 +28,8 @@
 template<> float fromLua<float>(lua_State* state, int index) { return (float)lua_tonumber(state, index); };
 template<> char fromLua<char>(lua_State* state, int index) { return (char)lua_tonumber(state, index); };
-template<> const std::string& fromLua<const std::string&>(lua_State* state, int index) { temp = lua_tostring(state, index); return temp; };
+template<> const std::string& fromLua<const std::string&>(lua_State* state, int index) { temp[index] = lua_tostring(state, index); return temp[index]; };
 
 
-
+template<typename type> void toLua(lua_State* state, type value) { Lunar<type>::push(state, value, false); };
 template<> void toLua<bool>(lua_State* state, bool value) { lua_pushboolean(state, (int) value); };
 template<> void toLua<int>(lua_State* state, int value)  { lua_pushnumber(state, (lua_Number) value); };
Index: trunk/src/lib/util/executor/executor_lua.h
===================================================================
--- trunk/src/lib/util/executor/executor_lua.h	(revision 8362)
+++ trunk/src/lib/util/executor/executor_lua.h	(revision 8408)
@@ -14,5 +14,5 @@
 
 
-template<typename type> type fromLua(lua_State* state, int index) { PRINTF(1)("NOT IMPLEMENTED\n"); };
+template<typename type> type fromLua(lua_State* state, int index);
 template<> bool fromLua<bool>(lua_State* state, int index);
 template<> int fromLua<int>(lua_State* state, int index);
@@ -23,5 +23,5 @@
 
 
-template<typename type> void toLua(lua_State* state, type value) { PRINTF(1)("NOT IMPLEMENTED\n"); };
+template<typename type> void toLua(lua_State* state, type value);
 template<> void toLua<bool>(lua_State* state, bool value);
 template<> void toLua<int>(lua_State* state, int value);
@@ -339,9 +339,3 @@
 };
 
-
-
-
-
-
-
 #endif /* _EXECUTOR_LUA_H */
