Index: branches/new_class_id/src/lib/shell/shell_command.cc
===================================================================
--- branches/new_class_id/src/lib/shell/shell_command.cc	(revision 9776)
+++ branches/new_class_id/src/lib/shell/shell_command.cc	(revision 9777)
@@ -300,9 +300,16 @@
     if (sc != NULL)
     {
-      for(std::vector<BaseObject*>::const_iterator bo = boList.begin(); bo != boList.end(); ++bo)
-      {
-        PRINT(0)("Command '%s' on '%s::%s'\n", sc->getCName(), (*bo)->getClassCName(), (*bo)->getCName());
-        (*sc->executor)((*bo), inputSplits.subSet(paramBegin));
-      }
+
+      if(sc->executor->getType() == Executor<const SubString>::FunctionStatic )
+      {
+	PRINT(0)("Static Command '%s' of Class '%s' with parameters\n", sc->getCName(), sc->shellClass->getCName());
+	(*sc->executor)(NULL, inputSplits.subSet(paramBegin));
+      }
+      else
+        for(std::vector<BaseObject*>::const_iterator bo = boList.begin(); bo != boList.end(); ++bo)
+        {
+          PRINT(0)("Command '%s' on '%s::%s'\n", sc->getCName(), (*bo)->getClassCName(), (*bo)->getCName());
+          (*sc->executor)((*bo), inputSplits.subSet(paramBegin));
+        }
       return true;
     }
@@ -377,7 +384,7 @@
     else
     {
-//       if(this->completors[parameter] == NULL)
-//       delete this->completors[parameter];
-//       this->completors[parameter] = completorPlugin.clone();
+      //       if(this->completors[parameter] == NULL)
+      //       delete this->completors[parameter];
+      //       this->completors[parameter] = completorPlugin.clone();
     }
     return this;
Index: branches/new_class_id/src/lib/shell/shell_command.h
===================================================================
--- branches/new_class_id/src/lib/shell/shell_command.h	(revision 9776)
+++ branches/new_class_id/src/lib/shell/shell_command.h	(revision 9777)
@@ -56,5 +56,5 @@
    */
 #define SHELL_COMMAND_STATIC(command, class, function) \
-           OrxShell::ShellCommand* shell_command_##class##_##command = OrxShell::ShellCommand::registerCommand(#command, #class, createExecutor<class, BaseObject>(function))
+           OrxShell::ShellCommand* shell_command_##class##_##command = OrxShell::ShellCommand::registerCommand(#command, #class, createExecutor<class, BaseObject>(&class::function))
 
 
Index: branches/new_class_id/src/lib/shell/some_shell_commands.cc
===================================================================
--- branches/new_class_id/src/lib/shell/some_shell_commands.cc	(revision 9776)
+++ branches/new_class_id/src/lib/shell/some_shell_commands.cc	(revision 9777)
@@ -29,8 +29,8 @@
 
 #include "network_game_rules.h"
-  SHELL_COMMAND(say, NetworkGameRules, shellSay)->setAlias("say");
+SHELL_COMMAND(say, NetworkGameRules, shellSay)->setAlias("say");
 
 #include "player_stats.h"
-  SHELL_COMMAND(nick, PlayerStats, shellNick)->setAlias("nick");
+SHELL_COMMAND(nick, PlayerStats, shellNick)->setAlias("nick");
 
 // #include "class_list.h"
@@ -40,16 +40,22 @@
 
 #include "p_node.h"
-  SHELL_COMMAND(debugNode, PNode, debugNode);
-  SHELL_COMMAND(setPosition, PNode, setAbsCoor);
+SHELL_COMMAND(debugNode, PNode, debugNode);
+SHELL_COMMAND(setPosition, PNode, setAbsCoor);
 
 #include "render_2d.h"
-  SHELL_COMMAND(toggleNodeVisibility, Render2D, toggleNodesVisibility);
+SHELL_COMMAND(toggleNodeVisibility, Render2D, toggleNodesVisibility);
 
 
 #include "material.h"
-  SHELL_COMMAND(setDiffuseTexture, Material, setDiffuseMap)
-      ->defaultValues(MT_NULL, (int)GL_TEXTURE_2D)
-      ->completionPlugin(0, CompletorFileSystem());
+SHELL_COMMAND(setDiffuseTexture, Material, setDiffuseMap)
+->defaultValues(MT_NULL, (int)GL_TEXTURE_2D)
+->completionPlugin(0, CompletorFileSystem());
 
 #include "loading/resource_manager.h"
 SHELL_COMMAND(debug, ResourceManager, debug);
+#include "loading/load_param_class_description.h"
+OrxShell::ShellCommand* shell_command_LPCD_printAll =
+  OrxShell::ShellCommand::registerCommand("printAll", "LoadParamClassDescription",
+					  new Executor2_static<LoadParamClassDescription, const SubString, const std::string&, bool>(&LoadParamClassDescription::printAll))
+//SHELL_COMMAND_STATIC(print, LoadParamClassDescription, printAll)
+->defaultValues(MT_NULL, true);
Index: branches/new_class_id/src/lib/util/Makefile.am
===================================================================
--- branches/new_class_id/src/lib/util/Makefile.am	(revision 9776)
+++ branches/new_class_id/src/lib/util/Makefile.am	(revision 9777)
@@ -19,5 +19,4 @@
 		loading/game_loader.cc \
 		loading/load_param.cc \
-		loading/load_param_xml.cc \
 		loading/load_param_description.cc \
 		loading/load_param_class_description.cc \
Index: branches/new_class_id/src/lib/util/loading/load_param.cc
===================================================================
--- branches/new_class_id/src/lib/util/loading/load_param.cc	(revision 9776)
+++ branches/new_class_id/src/lib/util/loading/load_param.cc	(revision 9777)
@@ -106,5 +106,2 @@
   return NULL;
 }
-
-
-
Index: branches/new_class_id/src/lib/util/loading/load_param_class_description.cc
===================================================================
--- branches/new_class_id/src/lib/util/loading/load_param_class_description.cc	(revision 9776)
+++ branches/new_class_id/src/lib/util/loading/load_param_class_description.cc	(revision 9777)
@@ -114,29 +114,48 @@
 }
 
-
-
-
 /**
  * @brief prints out all loadable Classes, and their parameters
  * @param fileName prints the output to a File
- * @todo implement it
+ * @param withComments if Comments should be included.
  */
-void LoadParamClassDescription::printAll(const std::string& fileName)
+void LoadParamClassDescription::printAll(const std::string& fileName, bool withComments)
 {
-  PRINT(0)("===============================================================\n");
-  PRINT(0)(" Listing all the Loadable Options (loaded since Game started).\n\n");
+  printf("================== function called\n");
+
+  FILE* stream;
+  if( (stream = fopen (fileName.c_str(), "w")) == NULL)
+  {
+    PRINTF(2)("File '%s' could not be opened for writing\n Printing to stdout\n", fileName.c_str());
+    LoadParamClassDescription::printAllTo(stdout, withComments);
+    return;
+  }
+  else
+    LoadParamClassDescription::printAllTo(stream, withComments);
+
+  fclose (stream);
+}
+
+/**
+ * @brief prints out all loadable Classes, and their parameters to a stream
+ * @param stream the stream to print to.
+ * @param withComments if Comments should be included.
+ */
+void LoadParamClassDescription::printAllTo(FILE* stream, bool withComments)
+{
+  fprintf(stream, "===============================================================\n");
+  fprintf(stream, " Listing all the Loadable Options (loaded since Game started).\n\n");
   for (ClassDescriptionMap::const_iterator classIt = LoadParamClassDescription::_classList.begin();
        classIt != LoadParamClassDescription::_classList.end();
        classIt ++)
   {
-    PRINT(0)("<%s>\n", (*classIt).second._className.c_str());
+    fprintf(stream, "<%s>\n", (*classIt).second._className.c_str());
     for (ParamDescriptionMap::const_iterator param = (*classIt).second._parameters.begin();
          param != (*classIt).second._parameters.end();
          ++param)
     {
-      (*param).second.print();
+      (*param).second.print(stream, withComments);
     }
-    PRINT(0)("</%s>\n\n", (*classIt).second._className.c_str());
+    fprintf(stream, "</%s>\n\n", (*classIt).second._className.c_str());
   }
-  PRINT(0)("===============================================================\n");
+  fprintf(stream, "===============================================================\n");
 }
Index: branches/new_class_id/src/lib/util/loading/load_param_class_description.h
===================================================================
--- branches/new_class_id/src/lib/util/loading/load_param_class_description.h	(revision 9776)
+++ branches/new_class_id/src/lib/util/loading/load_param_class_description.h	(revision 9777)
@@ -25,5 +25,4 @@
 #include "class_id.h"
 #include <map>
-#include <set>
 // Forward Declaration //
 class MultiType;
@@ -59,5 +58,6 @@
   static void deleteAllDescriptions();
 
-  static void printAll(const std::string& fileName = "");
+  static void printAll(const std::string& fileName = "", bool withComments = true);
+  static void printAllTo(FILE* stream = stdout, bool withComments = true);
 
 private:
Index: branches/new_class_id/src/lib/util/loading/load_param_description.cc
===================================================================
--- branches/new_class_id/src/lib/util/loading/load_param_description.cc	(revision 9776)
+++ branches/new_class_id/src/lib/util/loading/load_param_description.cc	(revision 9777)
@@ -56,41 +56,43 @@
 
 /**
- *  prints out this parameter, its input method and the description (if availiable)
+ * @brief prints out this parameter, its input method and the description (if availiable)
+ * @param stream the stream to print to.
+ * @param withComments if the comments should be appended.
  */
-void LoadParamDescription::print() const
+void LoadParamDescription::print(FILE* stream, bool withComments) const
 {
-  PRINT(0)(" <%s>", this->_name.c_str());
+  fprintf(stream, " <%s>", this->_name.c_str());
   for (unsigned int i = 0; i < this->_parameterCount; i++)
   {
     if (i > 0)
-      PRINT(0)(",");
-    PRINT(0)("%s", this->_types[i].c_str());
+      fprintf(stream, ",");
+    fprintf(stream, "%s", this->_types[i].c_str());
   }
-  PRINT(0)("</%s>", this->_name.c_str());
+  fprintf(stream, "</%s>", this->_name.c_str());
   if (!this->_description.empty())
-    PRINT(0)(" <!-- %s", this->_description.c_str());
+    fprintf(stream, " <!-- %s", this->_description.c_str());
   // default values
   if (this->_parameterCount > 0)
   {
-    PRINT(0)(" (Default: ");
+    fprintf(stream, " (Default: ");
     for (unsigned int i = 0; i < this->_parameterCount; i++)
     {
       if (i > 0)
-        PRINT(0)(", ");
+        fprintf(stream, ", ");
       if (this->_types[i] == "string")
       { // leave brackets !!
-        PRINT(0)("\"%s\"", this->_defaultValues[i].c_str());
+        fprintf(stream, "\"%s\"", this->_defaultValues[i].c_str());
       }
       else
       {
-        PRINT(0)("%s", this->_defaultValues[i].c_str());
+        fprintf(stream, "%s", this->_defaultValues[i].c_str());
       }
     }
-    PRINT(0)(")");
+    fprintf(stream, ")");
   }
   if (!this->_description.empty() || this->_parameterCount > 0)
-    PRINT(0)(" -->");
+    fprintf(stream, " -->");
 
-  PRINT(0)("\n");
+  fprintf(stream, "\n");
 }
 
Index: branches/new_class_id/src/lib/util/loading/load_param_description.h
===================================================================
--- branches/new_class_id/src/lib/util/loading/load_param_description.h	(revision 9776)
+++ branches/new_class_id/src/lib/util/loading/load_param_description.h	(revision 9777)
@@ -46,10 +46,11 @@
   void setDescription(const std::string& descriptionText);
   void setValues(unsigned int paramCount,
-		 const MultiType* const defaultValues,
-		 bool retVal = false);
+                 const MultiType* const defaultValues,
+                 bool retVal = false);
+
   /** @returns the descriptionString */
   const std::string& description() { return this->_description; };
 
-  void print() const;
+  void print(FILE* stream = stdout, bool withComments = true) const;
 
 private:
Index: branches/new_class_id/src/lib/util/loading/load_param_xml.cc
===================================================================
--- branches/new_class_id/src/lib/util/loading/load_param_xml.cc	(revision 9776)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_LOADING
-
-#include "util/loading/load_param_xml.h"
-#include "load_param_description.h"
-
