Index: branches/proxy/src/lib/util/Makefile.am
===================================================================
--- branches/proxy/src/lib/util/Makefile.am	(revision 9346)
+++ branches/proxy/src/lib/util/Makefile.am	(revision 9347)
@@ -6,5 +6,4 @@
 libORXlibutil_a_SOURCES = \
 		substring.cc \
-		tokenizer.cc \
 		color.cc \
 		helper_functions.cc \
@@ -32,5 +31,4 @@
 noinst_HEADERS = \
 		substring.h \
-		tokenizer.h \
 		multi_type.h \
 		color.h \
Index: branches/proxy/src/lib/util/executor/executor_functional.h
===================================================================
--- branches/proxy/src/lib/util/executor/executor_functional.h	(revision 9346)
+++ branches/proxy/src/lib/util/executor/executor_functional.h	(revision 9347)
@@ -179,5 +179,5 @@
   {
     (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-      fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)) );
+      (sub.size() > 0) ? fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)) : (fromMulti<type0>(this->defaultValue[0])));
   };
 
@@ -222,6 +222,6 @@
   {
     (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-      fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)),
-      fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1)));
+      (sub.size() > 0) ? fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)) : (fromMulti<type0>(this->defaultValue[0])),
+      (sub.size() > 1) ? fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1)) : (fromMulti<type1>(this->defaultValue[1])));
   };
 
@@ -276,7 +276,7 @@
   {
     (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-      fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)),
-      fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1)),
-      fromString<type2>(sub[2], getDefault<type2>(this->defaultValue, 2)));
+      (sub.size() > 0) ? fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)) : (fromMulti<type0>(this->defaultValue[0])),
+      (sub.size() > 1) ? fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1)) : (fromMulti<type1>(this->defaultValue[1])),
+      (sub.size() > 2) ? fromString<type2>(sub[2], getDefault<type2>(this->defaultValue, 2)) : (fromMulti<type2>(this->defaultValue[2])));
   };
 
@@ -333,8 +333,8 @@
   {
     (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-      fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)),
-      fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1)),
-      fromString<type2>(sub[2], getDefault<type2>(this->defaultValue, 2)),
-      fromString<type3>(sub[3], getDefault<type3>(this->defaultValue, 3)));
+      (sub.size() > 0) ? fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)) : (fromMulti<type0>(this->defaultValue[0])),
+      (sub.size() > 1) ? fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1)) : (fromMulti<type1>(this->defaultValue[1])),
+      (sub.size() > 2) ? fromString<type2>(sub[2], getDefault<type2>(this->defaultValue, 2)) : (fromMulti<type2>(this->defaultValue[2])),
+      (sub.size() > 3) ? fromString<type3>(sub[3], getDefault<type3>(this->defaultValue, 3)) : (fromMulti<type3>(this->defaultValue[3])));
   };
 
@@ -392,9 +392,9 @@
   {
     (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-      fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)),
-      fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1)),
-      fromString<type2>(sub[2], getDefault<type2>(this->defaultValue, 2)),
-      fromString<type3>(sub[3], getDefault<type3>(this->defaultValue, 3)),
-      fromString<type4>(sub[4], getDefault<type4>(this->defaultValue, 4)));
+      (sub.size() > 0) ? fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)) : (fromMulti<type0>(this->defaultValue[0])),
+      (sub.size() > 1) ? fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1)) : (fromMulti<type1>(this->defaultValue[1])),
+      (sub.size() > 2) ? fromString<type2>(sub[2], getDefault<type2>(this->defaultValue, 2)) : (fromMulti<type2>(this->defaultValue[2])),
+      (sub.size() > 3) ? fromString<type3>(sub[3], getDefault<type3>(this->defaultValue, 3)) : (fromMulti<type3>(this->defaultValue[3])),
+      (sub.size() > 4) ? fromString<type4>(sub[4], getDefault<type4>(this->defaultValue, 4)) : (fromMulti<type4>(this->defaultValue[4])));
   };
 
Index: branches/proxy/src/lib/util/executor/functor_list.h
===================================================================
--- branches/proxy/src/lib/util/executor/functor_list.h	(revision 9346)
+++ branches/proxy/src/lib/util/executor/functor_list.h	(revision 9347)
@@ -135,4 +135,5 @@
 
   //! mixed values:
+  FUNCTOR_LIST(2)(l_STRING, l_INT);
   FUNCTOR_LIST(2)(l_STRING, l_FLOAT);
   FUNCTOR_LIST(2)(l_UINT, l_LONG);
Index: branches/proxy/src/lib/util/multi_type.cc
===================================================================
--- branches/proxy/src/lib/util/multi_type.cc	(revision 9346)
+++ branches/proxy/src/lib/util/multi_type.cc	(revision 9347)
@@ -18,9 +18,4 @@
 #include "multi_type.h"
 
-//#include "stdincl.h"
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
 #include <sstream>
 
@@ -28,6 +23,4 @@
 #include "debug.h"
 #endif
-
-using namespace std;
 
 /**
Index: branches/proxy/src/lib/util/substring.cc
===================================================================
--- branches/proxy/src/lib/util/substring.cc	(revision 9346)
+++ branches/proxy/src/lib/util/substring.cc	(revision 9347)
@@ -28,8 +28,4 @@
 #include "substring.h"
 
-#include <string.h>
-#include <cassert>
-
-
 /**
  * @brief default constructor
@@ -108,5 +104,5 @@
 
 /** @brief An empty String */
-const std::string SubString::emptyString = "";
+// const std::string SubString::emptyString = "";
 /** @brief Helper that gets you a String consisting of all White Spaces */
 const std::string SubString::WhiteSpaces = " \n\t";
@@ -238,5 +234,8 @@
   }
   else
-    return SubString::emptyString;
+  {
+    static std::string empty;
+    return empty;
+  }
 }
 
@@ -250,5 +249,5 @@
  * SubString::SubString(const SubString& subString, unsigned int subSetBegin)
  */
-SubString SubString::getSubSet(unsigned int subSetBegin) const
+SubString SubString::subSet(unsigned int subSetBegin) const
 {
   return SubString(*this, subSetBegin);
@@ -265,5 +264,5 @@
  * SubString::SubString(const SubString& subString, unsigned int subSetBegin)
  */
-SubString SubString::getSubSet(unsigned int subSetBegin, unsigned int subSetEnd) const
+SubString SubString::subSet(unsigned int subSetBegin, unsigned int subSetEnd) const
 {
   return SubString(*this, subSetBegin, subSetEnd);
@@ -289,6 +288,4 @@
  * Supports delimiters, escape characters,
  * ignores special  characters between safemode_char and between comment_char and linend '\n'.
- *
- *
  */
 SubString::SPLIT_LINE_STATE
Index: branches/proxy/src/lib/util/substring.h
===================================================================
--- branches/proxy/src/lib/util/substring.h	(revision 9346)
+++ branches/proxy/src/lib/util/substring.h	(revision 9347)
@@ -2,8 +2,22 @@
  * @file substring.h
  * @brief a small class to get the parts of a string separated by commas
+ *
+ * This class is also identified as a Tokenizer. It splits up one long
+ * String into multiple small ones by a designated Delimiter.
+ *
+ * Substring is Advanced, and it is possible, to split a string by ','
+ * but also removing leading and trailing spaces around the comma.
+ *
+ * @example
+ * Split the String std::string st = "1345, The new empire   , is , orxonox"
+ * is splitted with:
+ * SubString(st, ',', " \n\t")
+ * into
+ * "1345", "The new empire", "is", "orxonox"
+ * As you can see, the useless spaces around ',' were removed.
  */
 
-#ifndef _SUBSTRING_H
-#define _SUBSTRING_H
+#ifndef __SUBSTRING_H__
+#define __SUBSTRING_H__
 
 #include <vector>
@@ -61,6 +75,6 @@
 
   // retrieve a SubSet from the String
-  SubString getSubSet(unsigned int subSetBegin) const;
-  SubString getSubSet(unsigned int subSetBegin, unsigned int subSetEnd) const;
+  SubString subSet(unsigned int subSetBegin) const;
+  SubString subSet(unsigned int subSetBegin, unsigned int subSetEnd) const;
 
   // retrieve Information from within
@@ -70,7 +84,13 @@
   inline unsigned int size() const { return this->strings.size(); };
   /** @param i the i'th String @returns the i'th string from the subset of Strings */
-  inline const std::string& operator[](unsigned int i) const { return (i < this->strings.size()) ? this->strings[i] : emptyString; };
+  inline const std::string& operator[](unsigned int i) const { return this->strings[i]; };
   /** @param i the i'th String @returns the i'th string from the subset of Strings */
   inline const std::string& getString(unsigned int i) const { return (*this)[i]; };
+  /** @returns the front of the StringList. */
+  inline const std::string& front() const { return this->strings.front(); };
+  /** @returns the back of the StringList. */
+  inline const std::string& back() const { return this->strings.back(); };
+  /** @brief removes the back of the strings list. */
+  inline void pop_back() { this->strings.pop_back(); };
 
   // the almighty algorithm.
@@ -93,7 +113,5 @@
 private:
   std::vector<std::string>  strings;                      //!< strings produced from a single string splitted in multiple strings
-
-  static const std::string emptyString;
 };
 
-#endif /* _SUBSTRING_H */
+#endif /* __SUBSTRING_H__ */
Index: branches/proxy/src/lib/util/tokenizer.cc
===================================================================
--- branches/proxy/src/lib/util/tokenizer.cc	(revision 9346)
+++ 	(revision )
@@ -1,29 +1,0 @@
-/**
- * @file tokenizer.cc
- * @brief a tokenizer class
- *
- */
-
-#include "tokenizer.h"
-
-
-/**
- * tokenize a string
- */
-void Tokenizer::tokenize(const std::string& str, std::vector<std::string>& tokens, const std::string& delimiters)
-{
-    // Skip delimiters at beginning.
-  std::string::size_type lastPos = str.find_first_not_of(delimiters, 0);
-    // Find first "non-delimiter".
-  std::string::size_type pos     = str.find_first_of(delimiters, lastPos);
-
-  while (std::string::npos != pos || std::string::npos != lastPos)
-  {
-        // Found a token, add it to the vector.
-    tokens.push_back(str.substr(lastPos, pos - lastPos));
-        // Skip delimiters.  Note the "not_of"
-    lastPos = str.find_first_not_of(delimiters, pos);
-        // Find next "non-delimiter"
-    pos = str.find_first_of(delimiters, lastPos);
-  }
-}
Index: branches/proxy/src/lib/util/tokenizer.h
===================================================================
--- branches/proxy/src/lib/util/tokenizer.h	(revision 9346)
+++ 	(revision )
@@ -1,26 +1,0 @@
-
-/*!
- * @file tokenzier.h
- * @brief Definition of Tokenizer
- *
- */
-
-#ifndef _TOKENIZER_H
-#define _TOKENIZER_H
-
-
-#include <vector>
-#include <string>
-
-
-//! A class to handle time itself
-class Tokenizer
-{
-
-  public:
-    static void tokenize(const std::string& str, std::vector<std::string>& tokens, const std::string& delimiters = " ");
-
-
-};
-
-#endif /* _TOKENIZER_H */
