Index: src/Actions/CommandAction/BondLengthTableAction.cpp
===================================================================
--- src/Actions/CommandAction/BondLengthTableAction.cpp	(revision 53d01c162db75173725d553f4f149598163822b5)
+++ src/Actions/CommandAction/BondLengthTableAction.cpp	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
@@ -20,6 +20,4 @@
 #include "Helpers/MemDebug.hpp"
 
-#include "Actions/CommandAction/BondLengthTableAction.hpp"
-#include "Actions/ActionRegistry.hpp"
 #include "bondgraph.hpp"
 #include "config.hpp"
@@ -33,43 +31,21 @@
 using namespace std;
 
-#include "UIElements/UIFactory.hpp"
-#include "UIElements/Dialog.hpp"
-#include "Actions/ValueStorage.hpp"
+#include "Actions/CommandAction/BondLengthTableAction.hpp"
 
-const char CommandBondLengthTableAction::NAME[] = "bond-table";
-
-CommandBondLengthTableAction::CommandBondLengthTableAction() :
-  Action(NAME)
-{}
-
-CommandBondLengthTableAction::~CommandBondLengthTableAction()
-{}
-
-void CommandBondLengthTable(std::string &BondGraphFileName) {
-  ValueStorage::getInstance().setCurrentValue(CommandBondLengthTableAction::NAME, BondGraphFileName);
-  ActionRegistry::getInstance().getActionByName(CommandBondLengthTableAction::NAME)->call(Action::NonInteractive);
-};
-
-void CommandBondLengthTableAction::getParametersfromValueStorage()
-{};
-
-Dialog* CommandBondLengthTableAction::fillDialog(Dialog *dialog) {
-  ASSERT(dialog,"No Dialog given when filling action dialog");
-
-  dialog->queryString(NAME, ValueStorage::getInstance().getDescription(NAME));
-
-  return dialog;
-}
-
+// and construct the stuff
+#include "BondLengthTableAction.def"
+#include "Action_impl_pre.hpp"
+/** =========== define the function ====================== */
 Action::state_ptr CommandBondLengthTableAction::performCall() {
   ostringstream usage;
-  string BondGraphFileName;
 
-  ValueStorage::getInstance().queryCurrentValue(NAME, BondGraphFileName);
-  DoLog(0) && (Log() << Verbose(0) << "Using " << BondGraphFileName << " as bond length table." << endl);
+  // obtain information
+  getParametersfromValueStorage();
+
+  DoLog(0) && (Log() << Verbose(0) << "Using " << params.BondGraphFileName << " as bond length table." << endl);
   config *configuration = World::getInstance().getConfig();
   if (configuration->BG == NULL) {
     configuration->BG = new BondGraph(configuration->GetIsAngstroem());
-    if ((!BondGraphFileName.empty()) && (configuration->BG->LoadBondLengthTable(BondGraphFileName))) {
+    if ((!params.BondGraphFileName.empty()) && (configuration->BG->LoadBondLengthTable(params.BondGraphFileName))) {
       DoLog(0) && (Log() << Verbose(0) << "Bond length table loaded successfully." << endl);
       return Action::success;
@@ -109,2 +85,3 @@
   return NAME;
 }
+/** =========== end of function ====================== */
Index: src/Actions/CommandAction/BondLengthTableAction.def
===================================================================
--- src/Actions/CommandAction/BondLengthTableAction.def	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
+++ src/Actions/CommandAction/BondLengthTableAction.def	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
@@ -0,0 +1,25 @@
+/*
+ * BondLengthTableAction.def
+ *
+ *  Created on: Aug 26, 2010
+ *      Author: heber
+ */
+
+// all includes and forward declarations necessary for non-integral types below
+
+
+// i.e. there is an integer with variable name Z that can be found in
+// ValueStorage by the token "Z" -> first column: int, Z, "Z"
+// "undefine" if no parameters are required
+#define paramtypes (std::string)
+#define paramtokens (CommandBondLengthTableAction::NAME)
+#define paramreferences (BondGraphFileName)
+
+#undef statetypes
+#undef statereferences
+
+// some defines for all the names, you may use ACTION, STATE and PARAMS
+#define CATEGORY Command
+#define ACTIONNAME BondLengthTable
+#define TOKEN "bond-table"
+
Index: src/Actions/CommandAction/BondLengthTableAction.hpp
===================================================================
--- src/Actions/CommandAction/BondLengthTableAction.hpp	(revision 53d01c162db75173725d553f4f149598163822b5)
+++ src/Actions/CommandAction/BondLengthTableAction.hpp	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
@@ -11,27 +11,6 @@
 #include "Actions/Action.hpp"
 
-void CommandBondLengthTable(std::string &BondGraphFileName);
-
-class CommandBondLengthTableAction : public Action {
-  friend void CommandBondLengthTable(std::string &BondGraphFileName);
-
-public:
-  CommandBondLengthTableAction();
-  virtual ~CommandBondLengthTableAction();
-
-  bool canUndo();
-  bool shouldUndo();
-
-  virtual const std::string getName();
-protected:
-  virtual Dialog * fillDialog(Dialog *dialog);
-private:
-  virtual void getParametersfromValueStorage();
-  virtual Action::state_ptr performCall();
-  virtual Action::state_ptr performUndo(Action::state_ptr);
-  virtual Action::state_ptr performRedo(Action::state_ptr);
-
-  static const char NAME[];
-};
+#include "BondLengthTableAction.def"
+#include "Action_impl_header.hpp"
 
 #endif /* BONDLENGTHTABLEACTION_HPP_ */
Index: src/Actions/CommandAction/ElementDbAction.cpp
===================================================================
--- src/Actions/CommandAction/ElementDbAction.cpp	(revision 53d01c162db75173725d553f4f149598163822b5)
+++ src/Actions/CommandAction/ElementDbAction.cpp	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
@@ -20,6 +20,4 @@
 #include "Helpers/MemDebug.hpp"
 
-#include "Actions/CommandAction/ElementDbAction.hpp"
-#include "Actions/ActionRegistry.hpp"
 #include "config.hpp"
 #include "Helpers/Log.hpp"
@@ -33,42 +31,20 @@
 using namespace std;
 
-#include "UIElements/UIFactory.hpp"
-#include "UIElements/Dialog.hpp"
-#include "Actions/ValueStorage.hpp"
+#include "Actions/CommandAction/ElementDbAction.hpp"
 
-const char CommandElementDbAction::NAME[] = "element-db";
-
-CommandElementDbAction::CommandElementDbAction() :
-  Action(NAME)
-{}
-
-CommandElementDbAction::~CommandElementDbAction()
-{}
-
-void CommandElementDb(std::string &databasepath) {
-  ValueStorage::getInstance().setCurrentValue(CommandElementDbAction::NAME, databasepath);
-  ActionRegistry::getInstance().getActionByName(CommandElementDbAction::NAME)->call(Action::NonInteractive);
-};
-
-void CommandElementDbAction::getParametersfromValueStorage()
-{};
-
-Dialog* CommandElementDbAction::fillDialog(Dialog *dialog) {
-  ASSERT(dialog,"No Dialog given when filling action dialog");
-
-  dialog->queryString(NAME, ValueStorage::getInstance().getDescription(NAME));
-
-  return dialog;
-}
-
+// and construct the stuff
+#include "ElementDbAction.def"
+#include "Action_impl_pre.hpp"
+/** =========== define the function ====================== */
 Action::state_ptr CommandElementDbAction::performCall() {
   ostringstream usage;
-  string databasepath;
+
+  // obtain information
+  getParametersfromValueStorage();
 
   // get the path
   // TODO: Make databasepath a std::string
   config *configuration = World::getInstance().getConfig();
-  ValueStorage::getInstance().queryCurrentValue(NAME, databasepath);
-  strcpy(configuration->databasepath, databasepath.c_str());
+  strcpy(configuration->databasepath, params.databasepath.c_str());
 
   // load table
@@ -110,2 +86,3 @@
   return NAME;
 }
+/** =========== end of function ====================== */
Index: src/Actions/CommandAction/ElementDbAction.def
===================================================================
--- src/Actions/CommandAction/ElementDbAction.def	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
+++ src/Actions/CommandAction/ElementDbAction.def	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
@@ -0,0 +1,25 @@
+/*
+ * ElementDbAction.def
+ *
+ *  Created on: Aug 26, 2010
+ *      Author: heber
+ */
+
+// all includes and forward declarations necessary for non-integral types below
+
+
+// i.e. there is an integer with variable name Z that can be found in
+// ValueStorage by the token "Z" -> first column: int, Z, "Z"
+// "undefine" if no parameters are required
+#define paramtypes (std::string)
+#define paramtokens (CommandElementDbAction::NAME)
+#define paramreferences (databasepath)
+
+#undef statetypes
+#undef statereferences
+
+// some defines for all the names, you may use ACTION, STATE and PARAMS
+#define CATEGORY Command
+#define ACTIONNAME ElementDb
+#define TOKEN "element-db"
+
Index: src/Actions/CommandAction/ElementDbAction.hpp
===================================================================
--- src/Actions/CommandAction/ElementDbAction.hpp	(revision 53d01c162db75173725d553f4f149598163822b5)
+++ src/Actions/CommandAction/ElementDbAction.hpp	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
@@ -11,27 +11,6 @@
 #include "Actions/Action.hpp"
 
-void CommandElementDb(std::string &databasepath);
-
-class CommandElementDbAction : public Action {
-  friend void CommandElementDb(std::string &databasepath);
-
-public:
-  CommandElementDbAction();
-  virtual ~CommandElementDbAction();
-
-  bool canUndo();
-  bool shouldUndo();
-
-  virtual const std::string getName();
-protected:
-  virtual Dialog * fillDialog(Dialog *dialog);
-private:
-  virtual void getParametersfromValueStorage();
-  virtual Action::state_ptr performCall();
-  virtual Action::state_ptr performUndo(Action::state_ptr);
-  virtual Action::state_ptr performRedo(Action::state_ptr);
-
-  static const char NAME[];
-};
+#include "ElementDbAction.def"
+#include "Action_impl_header.hpp"
 
 #endif /* ELEMENTDBACTION_HPP_ */
Index: src/Actions/CommandAction/FastParsingAction.cpp
===================================================================
--- src/Actions/CommandAction/FastParsingAction.cpp	(revision 53d01c162db75173725d553f4f149598163822b5)
+++ src/Actions/CommandAction/FastParsingAction.cpp	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
@@ -20,6 +20,4 @@
 #include "Helpers/MemDebug.hpp"
 
-#include "Actions/CommandAction/FastParsingAction.hpp"
-#include "Actions/ActionRegistry.hpp"
 #include "config.hpp"
 #include "Helpers/Log.hpp"
@@ -32,57 +30,23 @@
 using namespace std;
 
-#include "UIElements/UIFactory.hpp"
-#include "UIElements/Dialog.hpp"
-#include "Actions/ValueStorage.hpp"
+#include "Actions/CommandAction/FastParsingAction.hpp"
 
-// memento to remember the state when undoing
-
-class CommandFastParsingState : public ActionState {
-public:
-  CommandFastParsingState(const bool _oldvalue, const bool _newvalue) :
-    oldvalue(_oldvalue),
-    newvalue(_newvalue)
-  {}
-  bool oldvalue;
-  bool newvalue;
-};
-
-
-const char CommandFastParsingAction::NAME[] = "fastparsing";
-
-CommandFastParsingAction::CommandFastParsingAction() :
-  Action(NAME)
-{}
-
-CommandFastParsingAction::~CommandFastParsingAction()
-{}
-
-void CommandFastParsing(bool fastparsing) {
-  ValueStorage::getInstance().setCurrentValue(CommandFastParsingAction::NAME, fastparsing);
-  ActionRegistry::getInstance().getActionByName(CommandFastParsingAction::NAME)->call(Action::NonInteractive);
-};
-
-void CommandFastParsingAction::getParametersfromValueStorage()
-{};
-
-Dialog* CommandFastParsingAction::fillDialog(Dialog *dialog) {
-  ASSERT(dialog,"No Dialog given when filling action dialog");
-
-  dialog->queryBoolean(NAME, ValueStorage::getInstance().getDescription(NAME));
-
-  return dialog;
-}
-
+// and construct the stuff
+#include "FastParsingAction.def"
+#include "Action_impl_pre.hpp"
+/** =========== define the function ====================== */
 Action::state_ptr CommandFastParsingAction::performCall() {
   config *configuration = World::getInstance().getConfig();
   bool oldvalue = configuration->FastParsing;
-  bool newvalue;
-  ValueStorage::getInstance().queryCurrentValue(NAME, newvalue);
-  configuration->FastParsing = newvalue;
+
+  // obtain information
+  getParametersfromValueStorage();
+
+  configuration->FastParsing = params.fastparsing;
   if (configuration->FastParsing)
     DoLog(0) && (Log() << Verbose(0) << "I won't parse trajectories." << endl);
   else
     DoLog(0) && (Log() << Verbose(0) << "I will parse trajectories." << endl);
-  return Action::state_ptr(new CommandFastParsingState(oldvalue, newvalue));
+  return Action::state_ptr(new CommandFastParsingState(oldvalue, params));
 }
 
@@ -104,5 +68,5 @@
 
   config *configuration = World::getInstance().getConfig();
-  configuration->FastParsing = state->newvalue;
+  configuration->FastParsing = state->params.fastparsing;
   if (configuration->FastParsing)
     DoLog(0) && (Log() << Verbose(0) << "I won't parse trajectories." << endl);
@@ -124,2 +88,3 @@
   return NAME;
 }
+/** =========== end of function ====================== */
Index: src/Actions/CommandAction/FastParsingAction.def
===================================================================
--- src/Actions/CommandAction/FastParsingAction.def	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
+++ src/Actions/CommandAction/FastParsingAction.def	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
@@ -0,0 +1,25 @@
+/*
+ * FastParsingAction.def
+ *
+ *  Created on: Aug 26, 2010
+ *      Author: heber
+ */
+
+// all includes and forward declarations necessary for non-integral types below
+
+
+// i.e. there is an integer with variable name Z that can be found in
+// ValueStorage by the token "Z" -> first column: int, Z, "Z"
+// "undefine" if no parameters are required
+#define paramtypes (bool)
+#define paramtokens (CommandFastParsingAction::NAME)
+#define paramreferences (fastparsing)
+
+#define statetypes (bool)
+#define statereferences (oldvalue)
+
+// some defines for all the names, you may use ACTION, STATE and PARAMS
+#define CATEGORY Command
+#define ACTIONNAME FastParsing
+#define TOKEN "fastparsing"
+
Index: src/Actions/CommandAction/FastParsingAction.hpp
===================================================================
--- src/Actions/CommandAction/FastParsingAction.hpp	(revision 53d01c162db75173725d553f4f149598163822b5)
+++ src/Actions/CommandAction/FastParsingAction.hpp	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
@@ -11,27 +11,6 @@
 #include "Actions/Action.hpp"
 
-void CommandFastParsing(bool fastparsing);
-
-class CommandFastParsingAction : public Action {
-  friend void CommandFastParsing(bool fastparsing);
-
-public:
-  CommandFastParsingAction();
-  virtual ~CommandFastParsingAction();
-
-  bool canUndo();
-  bool shouldUndo();
-
-  virtual const std::string getName();
-protected:
-  virtual Dialog * fillDialog(Dialog *dialog);
-private:
-  virtual void getParametersfromValueStorage();
-  virtual Action::state_ptr performCall();
-  virtual Action::state_ptr performUndo(Action::state_ptr);
-  virtual Action::state_ptr performRedo(Action::state_ptr);
-
-  static const char NAME[];
-};
+#include "FastParsingAction.def"
+#include "Action_impl_header.hpp"
 
 #endif /* FASTPARSINGACTION_HPP_ */
Index: src/Actions/CommandAction/HelpAction.cpp
===================================================================
--- src/Actions/CommandAction/HelpAction.cpp	(revision 53d01c162db75173725d553f4f149598163822b5)
+++ src/Actions/CommandAction/HelpAction.cpp	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
@@ -20,6 +20,4 @@
 #include "Helpers/MemDebug.hpp"
 
-#include "Actions/CommandAction/HelpAction.hpp"
-#include "Actions/ActionRegistry.hpp"
 #include "CommandLineParser.hpp"
 
@@ -29,35 +27,14 @@
 using namespace std;
 
-#include "UIElements/UIFactory.hpp"
-#include "UIElements/Dialog.hpp"
-#include "Actions/ValueStorage.hpp"
+#include "Actions/CommandAction/HelpAction.hpp"
 
-const char CommandHelpAction::NAME[] = "help";
+// and construct the stuff
+#include "HelpAction.def"
+#include "Action_impl_pre.hpp"
+/** =========== define the function ====================== */
+Action::state_ptr CommandHelpAction::performCall() {
+  // obtain information
+  getParametersfromValueStorage();
 
-CommandHelpAction::CommandHelpAction() :
-  Action(NAME)
-{}
-
-CommandHelpAction::~CommandHelpAction()
-{}
-
-void CommandHelp() {
-  ActionRegistry::getInstance().getActionByName(CommandHelpAction::NAME)->call(Action::NonInteractive);
-};
-
-void CommandHelpAction::getParametersfromValueStorage()
-{};
-
-Dialog* CommandHelpAction::fillDialog(Dialog *dialog) {
-  ASSERT(dialog,"No Dialog given when filling action dialog");
-
-  ostringstream usage;
-  usage << CommandLineParser::getInstance().visible << endl;
-  dialog->queryEmpty(NAME, usage.str());
-
-  return dialog;
-}
-
-Action::state_ptr CommandHelpAction::performCall() {
   return Action::success;
 }
@@ -82,2 +59,3 @@
   return NAME;
 }
+/** =========== end of function ====================== */
Index: src/Actions/CommandAction/HelpAction.def
===================================================================
--- src/Actions/CommandAction/HelpAction.def	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
+++ src/Actions/CommandAction/HelpAction.def	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
@@ -0,0 +1,25 @@
+/*
+ * HelpAction.def
+ *
+ *  Created on: Aug 26, 2010
+ *      Author: heber
+ */
+
+// all includes and forward declarations necessary for non-integral types below
+
+
+// i.e. there is an integer with variable name Z that can be found in
+// ValueStorage by the token "Z" -> first column: int, Z, "Z"
+// "undefine" if no parameters are required
+#undef paramtypes
+#undef paramtokens
+#undef paramreferences
+
+#undef statetypes
+#undef statereferences
+
+// some defines for all the names, you may use ACTION, STATE and PARAMS
+#define CATEGORY Command
+#define ACTIONNAME Help
+#define TOKEN "help"
+
Index: src/Actions/CommandAction/HelpAction.hpp
===================================================================
--- src/Actions/CommandAction/HelpAction.hpp	(revision 53d01c162db75173725d553f4f149598163822b5)
+++ src/Actions/CommandAction/HelpAction.hpp	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
@@ -11,27 +11,6 @@
 #include "Actions/Action.hpp"
 
-void CommandHelp();
-
-class CommandHelpAction : public Action {
-  friend void CommandHelp();
-
-public:
-  CommandHelpAction();
-  virtual ~CommandHelpAction();
-
-  bool canUndo();
-  bool shouldUndo();
-
-  virtual const std::string getName();
-protected:
-  virtual Dialog * fillDialog(Dialog *dialog);
-private:
-  virtual void getParametersfromValueStorage();
-  virtual Action::state_ptr performCall();
-  virtual Action::state_ptr performUndo(Action::state_ptr);
-  virtual Action::state_ptr performRedo(Action::state_ptr);
-
-  static const char NAME[];
-};
+#include "HelpAction.def"
+#include "Action_impl_header.hpp"
 
 #endif /* HELPACTION_HPP_ */
Index: src/Actions/CommandAction/VerboseAction.cpp
===================================================================
--- src/Actions/CommandAction/VerboseAction.cpp	(revision 53d01c162db75173725d553f4f149598163822b5)
+++ src/Actions/CommandAction/VerboseAction.cpp	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
@@ -20,6 +20,4 @@
 #include "Helpers/MemDebug.hpp"
 
-#include "Actions/CommandAction/VerboseAction.hpp"
-#include "Actions/ActionRegistry.hpp"
 #include "Helpers/Log.hpp"
 #include "Helpers/Verbose.hpp"
@@ -30,56 +28,20 @@
 using namespace std;
 
-#include "UIElements/UIFactory.hpp"
-#include "UIElements/Dialog.hpp"
-#include "Actions/ValueStorage.hpp"
+#include "Actions/CommandAction/VerboseAction.hpp"
 
-// memento to remember the state when undoing
-
-class CommandVerboseState : public ActionState {
-public:
-  CommandVerboseState(const int _oldverbosity, const int _newverbosity) :
-    oldverbosity(_oldverbosity),
-    newverbosity(_newverbosity)
-  {}
-  int oldverbosity;
-  int newverbosity;
-};
-
-
-const char CommandVerboseAction::NAME[] = "verbose";
-
-CommandVerboseAction::CommandVerboseAction() :
-  Action(NAME)
-{}
-
-CommandVerboseAction::~CommandVerboseAction()
-{}
-
-void CommandVerbose(int verbosity) {
-  ValueStorage::getInstance().setCurrentValue(CommandVerboseAction::NAME, verbosity);
-  ActionRegistry::getInstance().getActionByName(CommandVerboseAction::NAME)->call(Action::NonInteractive);
-};
-
-void CommandVerboseAction::getParametersfromValueStorage()
-{};
-
-Dialog* CommandVerboseAction::fillDialog(Dialog *dialog) {
-  ASSERT(dialog,"No Dialog given when filling action dialog");
-
-  dialog->queryInt(NAME, ValueStorage::getInstance().getDescription(NAME));
-
-  return dialog;
-}
-
+// and construct the stuff
+#include "VerboseAction.def"
+#include "Action_impl_pre.hpp"
+/** =========== define the function ====================== */
 Action::state_ptr CommandVerboseAction::performCall() {
   int oldverbosity = getVerbosity();
-  int newverbosity = 2;
 
-  ValueStorage::getInstance().queryCurrentValue(NAME, newverbosity);
+  // obtain information
+  getParametersfromValueStorage();
 
-  if (oldverbosity != newverbosity) {
-    CommandVerboseState *UndoState = new CommandVerboseState(oldverbosity, newverbosity);
-    setVerbosity(newverbosity);
-    DoLog(0) && (Log() << Verbose(0) << "Setting verbosity from " << oldverbosity << " to " << newverbosity << "." << endl);
+  if (oldverbosity != params.verbosity) {
+    CommandVerboseState *UndoState = new CommandVerboseState(oldverbosity, params);
+    setVerbosity(params.verbosity);
+    DoLog(0) && (Log() << Verbose(0) << "Setting verbosity from " << oldverbosity << " to " << params.verbosity << "." << endl);
     return Action::state_ptr(UndoState);
   } else {
@@ -92,5 +54,5 @@
   CommandVerboseState *state = assert_cast<CommandVerboseState*>(_state.get());
 
-  DoLog(0) && (Log() << Verbose(0) << "Setting verbosity from " << state->newverbosity << " to " << state->oldverbosity << "." << endl);
+  DoLog(0) && (Log() << Verbose(0) << "Setting verbosity from " << state->params.verbosity << " to " << state->oldverbosity << "." << endl);
   setVerbosity(state->oldverbosity);
 
@@ -101,6 +63,6 @@
   CommandVerboseState *state = assert_cast<CommandVerboseState*>(_state.get());
 
-  DoLog(0) && (Log() << Verbose(0) << "Setting verbosity from " << state->oldverbosity << " to " << state->newverbosity << "." << endl);
-  setVerbosity(state->newverbosity);
+  DoLog(0) && (Log() << Verbose(0) << "Setting verbosity from " << state->oldverbosity << " to " << state->params.verbosity << "." << endl);
+  setVerbosity(state->params.verbosity);
 
   return Action::state_ptr(_state);
@@ -118,2 +80,3 @@
   return NAME;
 }
+/** =========== end of function ====================== */
Index: src/Actions/CommandAction/VerboseAction.def
===================================================================
--- src/Actions/CommandAction/VerboseAction.def	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
+++ src/Actions/CommandAction/VerboseAction.def	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
@@ -0,0 +1,25 @@
+/*
+ * VerboseAction.def
+ *
+ *  Created on: Aug 26, 2010
+ *      Author: heber
+ */
+
+// all includes and forward declarations necessary for non-integral types below
+
+
+// i.e. there is an integer with variable name Z that can be found in
+// ValueStorage by the token "Z" -> first column: int, Z, "Z"
+// "undefine" if no parameters are required
+#define paramtypes (int)
+#define paramtokens (CommandVerboseAction::NAME)
+#define paramreferences (verbosity)
+
+#define statetypes (int)
+#define statereferences (oldverbosity)
+
+// some defines for all the names, you may use ACTION, STATE and PARAMS
+#define CATEGORY Command
+#define ACTIONNAME Verbose
+#define TOKEN "verbose"
+
Index: src/Actions/CommandAction/VerboseAction.hpp
===================================================================
--- src/Actions/CommandAction/VerboseAction.hpp	(revision 53d01c162db75173725d553f4f149598163822b5)
+++ src/Actions/CommandAction/VerboseAction.hpp	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
@@ -11,27 +11,6 @@
 #include "Actions/Action.hpp"
 
-void CommandVerbose(int verbosity);
-
-class CommandVerboseAction : public Action {
-  friend void CommandVerbose(int verbosity);
-
-public:
-  CommandVerboseAction();
-  virtual ~CommandVerboseAction();
-
-  bool canUndo();
-  bool shouldUndo();
-
-  virtual const std::string getName();
-protected:
-  virtual Dialog * fillDialog(Dialog *dialog);
-private:
-  virtual void getParametersfromValueStorage();
-  virtual Action::state_ptr performCall();
-  virtual Action::state_ptr performUndo(Action::state_ptr);
-  virtual Action::state_ptr performRedo(Action::state_ptr);
-
-  static const char NAME[];
-};
+#include "VerboseAction.def"
+#include "Action_impl_header.hpp"
 
 #endif /* VERBOSEACTION_HPP_ */
Index: src/Actions/CommandAction/VersionAction.cpp
===================================================================
--- src/Actions/CommandAction/VersionAction.cpp	(revision 53d01c162db75173725d553f4f149598163822b5)
+++ src/Actions/CommandAction/VersionAction.cpp	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
@@ -20,6 +20,4 @@
 #include "Helpers/MemDebug.hpp"
 
-#include "Actions/CommandAction/VersionAction.hpp"
-#include "Actions/ActionRegistry.hpp"
 #include "version.h"
 
@@ -29,33 +27,14 @@
 using namespace std;
 
-#include "UIElements/UIFactory.hpp"
-#include "UIElements/Dialog.hpp"
-#include "Actions/ValueStorage.hpp"
+#include "Actions/CommandAction/VersionAction.hpp"
 
-const char CommandVersionAction::NAME[] = "version";
+// and construct the stuff
+#include "VersionAction.def"
+#include "Action_impl_pre.hpp"
+/** =========== define the function ====================== */
+Action::state_ptr CommandVersionAction::performCall() {
+  // obtain information
+  getParametersfromValueStorage();
 
-CommandVersionAction::CommandVersionAction() :
-  Action(NAME)
-{}
-
-CommandVersionAction::~CommandVersionAction()
-{}
-
-void CommandVersion() {
-  ActionRegistry::getInstance().getActionByName(CommandVersionAction::NAME)->call(Action::NonInteractive);
-};
-
-void CommandVersionAction::getParametersfromValueStorage()
-{};
-
-Dialog* CommandVersionAction::fillDialog(Dialog *dialog) {
-  ASSERT(dialog,"No Dialog given when filling action dialog");
-
-  dialog->queryEmpty(NAME, MOLECUILDERVERSION);
-
-  return dialog;
-}
-
-Action::state_ptr CommandVersionAction::performCall() {
   return Action::success;
 }
@@ -80,2 +59,3 @@
   return NAME;
 }
+/** =========== end of function ====================== */
Index: src/Actions/CommandAction/VersionAction.def
===================================================================
--- src/Actions/CommandAction/VersionAction.def	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
+++ src/Actions/CommandAction/VersionAction.def	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
@@ -0,0 +1,25 @@
+/*
+ * VersionAction.def
+ *
+ *  Created on: Aug 26, 2010
+ *      Author: heber
+ */
+
+// all includes and forward declarations necessary for non-integral types below
+#include "version.h"
+
+// i.e. there is an integer with variable name Z that can be found in
+// ValueStorage by the token "Z" -> first column: int, Z, "Z"
+// "undefine" if no parameters are required
+#undef paramtypes
+#undef paramtokens
+#undef paramreferences
+
+#undef statetypes
+#undef statereferences
+
+// some defines for all the names, you may use ACTION, STATE and PARAMS
+#define CATEGORY Command
+#define ACTIONNAME Version
+#define TOKEN "version"
+
Index: src/Actions/CommandAction/VersionAction.hpp
===================================================================
--- src/Actions/CommandAction/VersionAction.hpp	(revision 53d01c162db75173725d553f4f149598163822b5)
+++ src/Actions/CommandAction/VersionAction.hpp	(revision 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf)
@@ -10,29 +10,7 @@
 
 #include "Actions/Action.hpp"
-#include "version.h"
 
-void CommandVersion();
-
-class CommandVersionAction : public Action {
-  friend void CommandVersion();
-
-public:
-  CommandVersionAction();
-  virtual ~CommandVersionAction();
-
-  bool canUndo();
-  bool shouldUndo();
-
-  virtual const std::string getName();
-protected:
-  virtual Dialog * fillDialog(Dialog *dialog);
-private:
-  virtual void getParametersfromValueStorage();
-  virtual Action::state_ptr performCall();
-  virtual Action::state_ptr performUndo(Action::state_ptr);
-  virtual Action::state_ptr performRedo(Action::state_ptr);
-
-  static const char NAME[];
-};
+#include "VersionAction.def"
+#include "Action_impl_header.hpp"
 
 #endif /* VERSIONACTION_HPP_ */
