Index: trunk/src/lib/graphics/text_engine/text.cc
===================================================================
--- trunk/src/lib/graphics/text_engine/text.cc	(revision 7739)
+++ trunk/src/lib/graphics/text_engine/text.cc	(revision 7742)
@@ -36,11 +36,10 @@
   this->font = NULL;
   this->size = textSize;
+  this->blending = TEXT_DEFAULT_BLENDING;
+  this->color = TEXT_DEFAULT_COLOR;
 
   this->setFont(fontFile, FONT_DEFAULT_RENDER_SIZE);
 
-  this->blending = TEXT_DEFAULT_BLENDING;
-  this->color = TEXT_DEFAULT_COLOR;
   this->setAlignment(TEXT_DEFAULT_ALIGNMENT);
-  this->setSize(TEXT_DEFAULT_SIZE);
 }
 
Index: trunk/src/lib/shell/shell.cc
===================================================================
--- trunk/src/lib/shell/shell.cc	(revision 7739)
+++ trunk/src/lib/shell/shell.cc	(revision 7742)
@@ -248,6 +248,6 @@
   void Shell::applyTextSettings(Text* text)
   {
+    text->setSize(this->textSize);
     text->setFont(this->fontFile, this->textSize);
-    text->setSize(this->textSize);
     text->setColor(this->textColor[0], this->textColor[1], this->textColor[2]);
     text->setBlending(this->textColor[3]);
Index: trunk/src/lib/shell/shell_command.cc
===================================================================
--- trunk/src/lib/shell/shell_command.cc	(revision 7739)
+++ trunk/src/lib/shell/shell_command.cc	(revision 7742)
@@ -27,5 +27,5 @@
 namespace OrxShell
 {
-  SHELL_COMMAND_STATIC(debug, ShellCommand, ShellCommand::debug);
+  SHELL_COMMAND(debug, ShellCommandClass, help);
 
 
@@ -98,6 +98,6 @@
     if (cmdClass != NULL)
     {
-      std::vector<ShellCommand*>::iterator cmd;
-      for (cmd = cmdClass->commandList.begin(); cmd < cmdClass->commandList.end(); cmd++)
+      CmdList::iterator cmd;
+      for (cmd = cmdClass->commandList.begin(); cmd != cmdClass->commandList.end(); cmd++)
         if (commandName == (*cmd)->getName())
         {
@@ -118,5 +118,5 @@
     assert(cmdClass != NULL);
 
-    std::vector<ShellCommand*>::const_iterator elem;
+    CmdList::const_iterator elem;
     for (elem = cmdClass->commandList.begin(); elem != cmdClass->commandList.end(); elem++)
       if (commandName == (*elem)->getName())
@@ -379,28 +379,10 @@
   }
 
-
-  /**
-   * @brief prints out nice information about the Shells Commands
-   */
-  void ShellCommand::debug()
-  {
-    std::vector<ShellCommandClass*>::iterator classIT;
-    for (classIT = ShellCommandClass::commandClassList.begin(); classIT != ShellCommandClass::commandClassList.end(); classIT++)
-    {
-      PRINT(0)("Class:'%s' registered %d commands: \n", (*classIT)->className.c_str(), (*classIT)->commandList.size());
-
-      std::vector<ShellCommand*>::iterator cmdIT;
-      for (cmdIT = (*classIT)->commandList.begin(); cmdIT != (*classIT)->commandList.end(); cmdIT++)
-      {
-        PRINT(0)("  command:'%s' : params:%d: ", (*cmdIT)->getName(), (*cmdIT)->executor->getParamCount());
-        /// FIXME
-        /*      for (unsigned int i = 0; i< elem->paramCount; i++)
-         printf("%s ", ShellCommand::paramToString(elem->parameters[i]));*/
-        if (!(*cmdIT)->description.empty())
-          printf("- %s", (*cmdIT)->description.c_str());
-        printf("\n");
-
-      }
-    }
+  /**
+   * @brief prints a Help string from this Command
+   */
+  void ShellCommand::help() const
+  {
+    PRINT(0)("%s ", this->getName());
   }
 
Index: trunk/src/lib/shell/shell_command.h
===================================================================
--- trunk/src/lib/shell/shell_command.h	(revision 7739)
+++ trunk/src/lib/shell/shell_command.h	(revision 7742)
@@ -84,5 +84,5 @@
     const CompletorPlugin* const getCompletorPlugin(unsigned int i) const { return this->completors[i]; };
 
-    static void debug();
+    void help() const;
 
   protected:
Index: trunk/src/lib/shell/shell_command_class.cc
===================================================================
--- trunk/src/lib/shell/shell_command_class.cc	(revision 7739)
+++ trunk/src/lib/shell/shell_command_class.cc	(revision 7742)
@@ -24,7 +24,9 @@
 #include "compiler.h"
 
+
+
 namespace OrxShell
 {
-  std::vector<ShellCommandClass*> ShellCommandClass::commandClassList;
+  CmdClassList ShellCommandClass::commandClassList;
 
   /**
@@ -40,5 +42,7 @@
     this->classID = CL_NULL;
 
+    printf("::: %d\n", commandClassList.size());
     ShellCommandClass::commandClassList.push_back(this);
+    printf("::: %d\n", commandClassList.size());
   }
 
@@ -50,4 +54,7 @@
     while(!this->commandList.empty())
       delete this->commandList.back();
+    CmdClassList::iterator delClass = std::find(ShellCommandClass::commandClassList.begin(), ShellCommandClass::commandClassList.end(), this);
+    if (delClass != ShellCommandClass::commandClassList.end())
+      ShellCommandClass::commandClassList.erase(delClass);
   }
 
@@ -57,14 +64,16 @@
   void ShellCommandClass::registerCommand(ShellCommand* command)
   {
+    printf("::::::::::: ADDED COMMAND:: '%s'\n", command->getName());
     this->commandList.push_back(command);
-  }
-
-  /**
-   * @brief unregister command.
+    this->help();
+  }
+
+  /**
+   * @brief Unregisters a command.
    * @param command the Command to unregister.
    */
   void ShellCommandClass::unregisterCommand(ShellCommand* command)
   {
-    std::vector<ShellCommand*>::iterator delC = std::find(this->commandList.begin(), this->commandList.end(), command);
+    CmdList::iterator delC = std::find(this->commandList.begin(), this->commandList.end(), command);
     if (delC != this->commandList.end())
       this->commandList.erase(delC);
@@ -77,7 +86,8 @@
   {
     // unregister all commands and Classes
-    std::vector<ShellCommandClass*>::iterator classIT;
-    for (classIT = ShellCommandClass::commandClassList.begin(); classIT != ShellCommandClass::commandClassList.end(); classIT++)
-      delete (*classIT);
+    CmdClassList::iterator classIT;
+
+    while (!ShellCommandClass::commandClassList.empty())
+      delete ShellCommandClass::commandClassList.back();
   }
 
@@ -91,15 +101,16 @@
   bool ShellCommandClass::getCommandListOfClass(const std::string& className, std::list<std::string>& stringList)
   {
-    std::vector<ShellCommandClass*>::iterator elem;
+    CmdClassList::const_iterator elem;
     for(elem = ShellCommandClass::commandClassList.begin(); elem != ShellCommandClass::commandClassList.end(); elem++)
     {
       if (className == (*elem)->getName())
       {
-        std::vector<ShellCommand*>::iterator command;
+        CmdList::iterator command;
         for(command = (*elem)->commandList.begin(); command != (*elem)->commandList.end(); command++)
           stringList.push_back((*command)->getName());
+        return true;
       }
     }
-    return true;
+    return false;
   }
 
@@ -110,7 +121,7 @@
    * @returns the CommandClass if found, NULL otherwise
    */
-  const ShellCommandClass* ShellCommandClass::getCommandClass(const std::string& className)
-  {
-    std::vector<ShellCommandClass*>::const_iterator classIT;
+  ShellCommandClass* ShellCommandClass::getCommandClass(const std::string& className)
+  {
+    CmdClassList::const_iterator classIT;
     for (classIT = ShellCommandClass::commandClassList.begin(); classIT != ShellCommandClass::commandClassList.end(); classIT++)
       if (className == (*classIT)->className)
@@ -144,8 +155,7 @@
   ShellCommandClass* ShellCommandClass::acquireCommandClass(const std::string& className)
   {
-    std::vector<ShellCommandClass*>::iterator classIT;
-    for (classIT = ShellCommandClass::commandClassList.begin(); classIT != ShellCommandClass::commandClassList.end(); classIT++)
-      if (className == (*classIT)->className)
-        return (*classIT);
+    ShellCommandClass* cmdClass = ShellCommandClass::getCommandClass(className);
+    if (cmdClass != NULL)
+      return (cmdClass);
     return new ShellCommandClass(className);
   }
@@ -157,11 +167,15 @@
   void ShellCommandClass::help(const std::string& className)
   {
-    std::vector<ShellCommandClass*>::iterator classIT;
+    if (className.empty())
+      PRINT(0)("===== Displaying %d registered Classes:\n", ShellCommandClass::commandClassList.size());
+
+
+    CmdClassList::iterator classIT;
     for (classIT = ShellCommandClass::commandClassList.begin(); classIT != ShellCommandClass::commandClassList.end(); classIT++)
     {
-      if (className == (*classIT)->className)
+      if (className.empty() || className == (*classIT)->className)
       {
         PRINT(0)("Class:'%s' registered %d commands: \n", (*classIT)->className.c_str(), (*classIT)->commandList.size());
-        std::vector<ShellCommand*>::const_iterator cmdIT;
+        CmdList::const_iterator cmdIT;
         for (cmdIT = (*classIT)->commandList.begin(); cmdIT != (*classIT)->commandList.end(); cmdIT++)
         {
@@ -174,10 +188,10 @@
           PRINT(0)("\n");
         }
-        return;
+        if (likely(!className.empty()))
+          return;
       }
     }
-    PRINTF(3)("Class %s not found in Command's classes\n", className.c_str());
-  }
-
+    PRINTF(3)("Class '%s' not found in Command's classes\n", className.c_str());
+  }
 }
 
Index: trunk/src/lib/shell/shell_command_class.h
===================================================================
--- trunk/src/lib/shell/shell_command_class.h	(revision 7739)
+++ trunk/src/lib/shell/shell_command_class.h	(revision 7742)
@@ -10,5 +10,4 @@
 #include <vector>
 
-
 namespace OrxShell
 {
@@ -16,4 +15,9 @@
   class ShellCommand;
   class ShellCommandAlias;
+  class ShellCommandClass;
+
+  typedef std::vector<ShellCommand*>      CmdList;
+  typedef std::vector<ShellCommandClass*> CmdClassList;
+
 
   //! A class to hold all Classes that have (once) registered Commands.
@@ -21,17 +25,18 @@
   {
     friend class ShellCommand;
-
   public:
     /** @returns the CommandClassList */
-    static const std::vector<ShellCommandClass*>& getCommandClassList() { return ShellCommandClass::commandClassList; };
+    static const CmdClassList& getCommandClassList() { return ShellCommandClass::commandClassList; };
 
     static bool getCommandListOfClass(const std::string& className, std::list<std::string>& stringList);
 
     static void unregisterAllCommands();
-    static const ShellCommandClass* getCommandClass(const std::string& className);
+    static ShellCommandClass* getCommandClass(const std::string& className);
     ClassID getClassID();
     static bool exists(const std::string& className);
 
-    static void help (const std::string& className);
+    static void help (const std::string& className = "");
+
+    static void debug();
 
   private:
@@ -47,7 +52,7 @@
     const std::string                      className;                 //!< The Name of the Class. This should match the ClassName of the Commands Class.
     ClassID                                classID;                   //!< The classID of this Class
-    std::vector<ShellCommand*>             commandList;               //!< A list of Commands from this Class
+    CmdList                                commandList;               //!< A list of Commands from this Class
 
-    static std::vector<ShellCommandClass*> commandClassList;          //!< A list of Classes
+    static CmdClassList                    commandClassList;          //!< A list of Classes
   };
 
Index: trunk/src/lib/util/executor/executor.cc
===================================================================
--- trunk/src/lib/util/executor/executor.cc	(revision 7739)
+++ trunk/src/lib/util/executor/executor.cc	(revision 7742)
@@ -106,29 +106,8 @@
 
 /**
- * prints out nice information about the Executor
+ * @brief prints out nice information about the Executor
  */
 void Executor::debug()
 {
-  /*  tIterator<ExecutorClass>* iteratorCL = ExecutorClass::commandClassList->getIterator();
-    ExecutorClass* elemCL = iteratorCL->firstElement();
-    while(elemCL != NULL)
-    {
-      PRINT(0)("Class:'%s' registered %d commands: \n", elemCL->className, elemCL->commandList->getSize());
-      tIterator<Executor>* iterator = elemCL->commandList->getIterator();
-      const Executor* elem = iterator->firstElement();
-      while(elem != NULL)
-      {
-        PRINT(0)("  command:'%s' : params:%d: ", elem->getName(), elem->paramCount);
-        for (unsigned int i = 0; i< elem->paramCount; i++)
-         printf("%s ", Executor::paramToString(elem->parameters[i]));
-        if (elem->description != NULL)
-         printf("- %s", elem->description);
-        printf("\n");
 
-        elem = iterator->nextElement();
-      }
-      delete iterator;
-      elemCL = iteratorCL->nextElement();
-    }
-    delete iteratorCL;*/
 }
