Index: src/Actions/CmdAction/BondLengthTableAction.cpp
===================================================================
--- src/Actions/CmdAction/BondLengthTableAction.cpp	(revision 97ebf8b2670d891c06f34ede7594c6708e07d886)
+++ src/Actions/CmdAction/BondLengthTableAction.cpp	(revision 97ebf8b2670d891c06f34ede7594c6708e07d886)
@@ -0,0 +1,86 @@
+/*
+ * BondLengthTableAction.cpp
+ *
+ *  Created on: May 9, 2010
+ *      Author: heber
+ */
+
+#include "Actions/CmdAction/BondLengthTableAction.hpp"
+#include "CommandLineParser.hpp"
+#include "config.hpp"
+#include "log.hpp"
+#include "verbose.hpp"
+#include "World.hpp"
+
+#include <iostream>
+#include <string>
+
+using namespace std;
+
+#include "UIElements/UIFactory.hpp"
+#include "UIElements/Dialog.hpp"
+#include "Actions/MapOfActions.hpp"
+
+const char CommandLineBondLengthTableAction::NAME[] = "bond-table";
+
+CommandLineBondLengthTableAction::CommandLineBondLengthTableAction() :
+  Action(NAME)
+{}
+
+CommandLineBondLengthTableAction::~CommandLineBondLengthTableAction()
+{}
+
+Action::state_ptr CommandLineBondLengthTableAction::performCall() {
+  ostringstream usage;
+  string BondGraphFileName;
+  Dialog *dialog = UIFactory::getInstance().makeDialog();
+
+  config *configuration = World::getInstance().getConfig();
+  dialog->queryString(NAME, &BondGraphFileName, MapOfActions::getInstance().getDescription(NAME));
+
+  if(dialog->display()) {
+    delete dialog;
+  } else {
+    delete dialog;
+  }
+
+  if (configuration->BG == NULL) {
+    configuration->BG = new BondGraph(configuration->GetIsAngstroem());
+    if ((!BondGraphFileName.empty()) && (configuration->BG->LoadBondLengthTable(BondGraphFileName))) {
+      DoLog(0) && (Log() << Verbose(0) << "Bond length table loaded successfully." << endl);
+      return Action::success;
+    } else {
+      DoeLog(1) && (eLog()<< Verbose(1) << "Bond length table loading failed." << endl);
+      return Action::failure;
+    }
+  } else {
+    DoLog(0) && (Log() << Verbose(0) << "Bond length table already present." << endl);
+    return Action::failure;
+  }
+}
+
+Action::state_ptr CommandLineBondLengthTableAction::performUndo(Action::state_ptr _state) {
+//  ParserLoadXyzState *state = assert_cast<ParserLoadXyzState*>(_state.get());
+
+  return Action::failure;
+//  string newName = state->mol->getName();
+//  state->mol->setName(state->lastName);
+//
+//  return Action::state_ptr(new ParserLoadXyzState(state->mol,newName));
+}
+
+Action::state_ptr CommandLineBondLengthTableAction::performRedo(Action::state_ptr _state){
+  return Action::failure;
+}
+
+bool CommandLineBondLengthTableAction::canUndo() {
+  return false;
+}
+
+bool CommandLineBondLengthTableAction::shouldUndo() {
+  return false;
+}
+
+const string CommandLineBondLengthTableAction::getName() {
+  return NAME;
+}
Index: src/Actions/CmdAction/BondLengthTableAction.hpp
===================================================================
--- src/Actions/CmdAction/BondLengthTableAction.hpp	(revision 97ebf8b2670d891c06f34ede7594c6708e07d886)
+++ src/Actions/CmdAction/BondLengthTableAction.hpp	(revision 97ebf8b2670d891c06f34ede7594c6708e07d886)
@@ -0,0 +1,30 @@
+/*
+ * BondLengthTableAction.hpp
+ *
+ *  Created on: May 9, 2010
+ *      Author: heber
+ */
+
+#ifndef BONDLENGTHTABLEACTION_HPP_
+#define BONDLENGTHTABLEACTION_HPP_
+
+#include "Actions/Action.hpp"
+
+class CommandLineBondLengthTableAction : public Action {
+public:
+  CommandLineBondLengthTableAction();
+  virtual ~CommandLineBondLengthTableAction();
+
+  bool canUndo();
+  bool shouldUndo();
+
+  virtual const std::string getName();
+private:
+  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[];
+};
+
+#endif /* BONDLENGTHTABLEACTION_HPP_ */
Index: src/Actions/CmdAction/ElementDbAction.cpp
===================================================================
--- src/Actions/CmdAction/ElementDbAction.cpp	(revision 97ebf8b2670d891c06f34ede7594c6708e07d886)
+++ src/Actions/CmdAction/ElementDbAction.cpp	(revision 97ebf8b2670d891c06f34ede7594c6708e07d886)
@@ -0,0 +1,88 @@
+/*
+ * ElementDbAction.cpp
+ *
+ *  Created on: May 9, 2010
+ *      Author: heber
+ */
+
+#include "Actions/CmdAction/ElementDbAction.hpp"
+#include "CommandLineParser.hpp"
+#include "config.hpp"
+#include "log.hpp"
+#include "periodentafel.hpp"
+#include "verbose.hpp"
+#include "World.hpp"
+
+#include <iostream>
+#include <string>
+
+using namespace std;
+
+#include "UIElements/UIFactory.hpp"
+#include "UIElements/Dialog.hpp"
+#include "Actions/MapOfActions.hpp"
+
+const char CommandLineElementDbAction::NAME[] = "element-db";
+
+CommandLineElementDbAction::CommandLineElementDbAction() :
+  Action(NAME)
+{}
+
+CommandLineElementDbAction::~CommandLineElementDbAction()
+{}
+
+Action::state_ptr CommandLineElementDbAction::performCall() {
+  ostringstream usage;
+  string databasepath;
+  Dialog *dialog = UIFactory::getInstance().makeDialog();
+
+  // get the path
+  // TODO: Make databasepath a std::string
+  config *configuration = World::getInstance().getConfig();
+  dialog->queryString(NAME, &databasepath, MapOfActions::getInstance().getDescription(NAME));
+  strcpy(configuration->databasepath, databasepath.c_str());
+
+  if(dialog->display()) {
+    delete dialog;
+  } else {
+    delete dialog;
+  }
+
+  // load table
+  periodentafel *periode = World::getInstance().getPeriode();
+  if (periode->LoadPeriodentafel(configuration->databasepath)) {
+    DoLog(0) && (Log() << Verbose(0) << "Element list loaded successfully." << endl);
+    //periode->Output();
+    return Action::success;
+  } else {
+    DoLog(0) && (Log() << Verbose(0) << "Element list loading failed." << endl);
+    return Action::failure;
+  }
+
+}
+
+Action::state_ptr CommandLineElementDbAction::performUndo(Action::state_ptr _state) {
+//  ParserLoadXyzState *state = assert_cast<ParserLoadXyzState*>(_state.get());
+
+  return Action::failure;
+//  string newName = state->mol->getName();
+//  state->mol->setName(state->lastName);
+//
+//  return Action::state_ptr(new ParserLoadXyzState(state->mol,newName));
+}
+
+Action::state_ptr CommandLineElementDbAction::performRedo(Action::state_ptr _state){
+  return Action::failure;
+}
+
+bool CommandLineElementDbAction::canUndo() {
+  return false;
+}
+
+bool CommandLineElementDbAction::shouldUndo() {
+  return false;
+}
+
+const string CommandLineElementDbAction::getName() {
+  return NAME;
+}
Index: src/Actions/CmdAction/ElementDbAction.hpp
===================================================================
--- src/Actions/CmdAction/ElementDbAction.hpp	(revision 97ebf8b2670d891c06f34ede7594c6708e07d886)
+++ src/Actions/CmdAction/ElementDbAction.hpp	(revision 97ebf8b2670d891c06f34ede7594c6708e07d886)
@@ -0,0 +1,30 @@
+/*
+ * ElementDbAction.hpp
+ *
+ *  Created on: May 9, 2010
+ *      Author: heber
+ */
+
+#ifndef ELEMENTDBACTION_HPP_
+#define ELEMENTDBACTION_HPP_
+
+#include "Actions/Action.hpp"
+
+class CommandLineElementDbAction : public Action {
+public:
+  CommandLineElementDbAction();
+  virtual ~CommandLineElementDbAction();
+
+  bool canUndo();
+  bool shouldUndo();
+
+  virtual const std::string getName();
+private:
+  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[];
+};
+
+#endif /* ELEMENTDBACTION_HPP_ */
Index: src/Actions/CmdAction/FastParsingAction.cpp
===================================================================
--- src/Actions/CmdAction/FastParsingAction.cpp	(revision 97ebf8b2670d891c06f34ede7594c6708e07d886)
+++ src/Actions/CmdAction/FastParsingAction.cpp	(revision 97ebf8b2670d891c06f34ede7594c6708e07d886)
@@ -0,0 +1,76 @@
+/*
+ * FastParsingAction.cpp
+ *
+ *  Created on: May 9, 2010
+ *      Author: heber
+ */
+
+#include "Actions/CmdAction/FastParsingAction.hpp"
+#include "CommandLineParser.hpp"
+#include "config.hpp"
+#include "log.hpp"
+#include "verbose.hpp"
+#include "World.hpp"
+
+#include <iostream>
+#include <string>
+
+using namespace std;
+
+#include "UIElements/UIFactory.hpp"
+#include "UIElements/Dialog.hpp"
+#include "Actions/MapOfActions.hpp"
+
+const char CommandLineFastParsingAction::NAME[] = "fastparsing";
+
+CommandLineFastParsingAction::CommandLineFastParsingAction() :
+  Action(NAME)
+{}
+
+CommandLineFastParsingAction::~CommandLineFastParsingAction()
+{}
+
+Action::state_ptr CommandLineFastParsingAction::performCall() {
+  Dialog *dialog = UIFactory::getInstance().makeDialog();
+
+  config *configuration = World::getInstance().getConfig();
+  dialog->queryBoolean(NAME, &configuration->FastParsing, MapOfActions::getInstance().getDescription(NAME));
+
+  if(dialog->display()) {
+    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);
+    delete dialog;
+    return Action::success;
+  } else {
+    delete dialog;
+    return Action::failure;
+  }
+}
+
+Action::state_ptr CommandLineFastParsingAction::performUndo(Action::state_ptr _state) {
+//  ParserLoadXyzState *state = assert_cast<ParserLoadXyzState*>(_state.get());
+
+  return Action::failure;
+//  string newName = state->mol->getName();
+//  state->mol->setName(state->lastName);
+//
+//  return Action::state_ptr(new ParserLoadXyzState(state->mol,newName));
+}
+
+Action::state_ptr CommandLineFastParsingAction::performRedo(Action::state_ptr _state){
+  return Action::failure;
+}
+
+bool CommandLineFastParsingAction::canUndo() {
+  return false;
+}
+
+bool CommandLineFastParsingAction::shouldUndo() {
+  return false;
+}
+
+const string CommandLineFastParsingAction::getName() {
+  return NAME;
+}
Index: src/Actions/CmdAction/FastParsingAction.hpp
===================================================================
--- src/Actions/CmdAction/FastParsingAction.hpp	(revision 97ebf8b2670d891c06f34ede7594c6708e07d886)
+++ src/Actions/CmdAction/FastParsingAction.hpp	(revision 97ebf8b2670d891c06f34ede7594c6708e07d886)
@@ -0,0 +1,30 @@
+/*
+ * FastParsingAction.hpp
+ *
+ *  Created on: May 9, 2010
+ *      Author: heber
+ */
+
+#ifndef FASTPARSINGACTION_HPP_
+#define FASTPARSINGACTION_HPP_
+
+#include "Actions/Action.hpp"
+
+class CommandLineFastParsingAction : public Action {
+public:
+  CommandLineFastParsingAction();
+  virtual ~CommandLineFastParsingAction();
+
+  bool canUndo();
+  bool shouldUndo();
+
+  virtual const std::string getName();
+private:
+  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[];
+};
+
+#endif /* FASTPARSINGACTION_HPP_ */
Index: src/Actions/CmdAction/HelpAction.cpp
===================================================================
--- src/Actions/CmdAction/HelpAction.cpp	(revision 50dfdae6d8f0ccc9165dcc2f73a1adcd35dd66e1)
+++ src/Actions/CmdAction/HelpAction.cpp	(revision 97ebf8b2670d891c06f34ede7594c6708e07d886)
@@ -16,4 +16,5 @@
 #include "UIElements/UIFactory.hpp"
 #include "UIElements/Dialog.hpp"
+#include "Actions/MapOfActions.hpp"
 
 const char CommandLineHelpAction::NAME[] = "help";
Index: src/Actions/CmdAction/VerboseAction.cpp
===================================================================
--- src/Actions/CmdAction/VerboseAction.cpp	(revision 97ebf8b2670d891c06f34ede7594c6708e07d886)
+++ src/Actions/CmdAction/VerboseAction.cpp	(revision 97ebf8b2670d891c06f34ede7594c6708e07d886)
@@ -0,0 +1,72 @@
+/*
+ * VerboseAction.cpp
+ *
+ *  Created on: May 9, 2010
+ *      Author: heber
+ */
+
+#include "Actions/CmdAction/VerboseAction.hpp"
+#include "CommandLineParser.hpp"
+#include "log.hpp"
+#include "verbose.hpp"
+
+#include <iostream>
+#include <string>
+
+using namespace std;
+
+#include "UIElements/UIFactory.hpp"
+#include "UIElements/Dialog.hpp"
+#include "Actions/MapOfActions.hpp"
+
+const char CommandLineVerboseAction::NAME[] = "verbose";
+
+CommandLineVerboseAction::CommandLineVerboseAction() :
+  Action(NAME)
+{}
+
+CommandLineVerboseAction::~CommandLineVerboseAction()
+{}
+
+Action::state_ptr CommandLineVerboseAction::performCall() {
+  Dialog *dialog = UIFactory::getInstance().makeDialog();
+  int verbosity = 2;
+
+  dialog->queryInt(NAME, &verbosity, MapOfActions::getInstance().getDescription(NAME));
+
+  if(dialog->display()) {
+    setVerbosity(verbosity);
+    DoLog(0) && (Log() << Verbose(0) << "Setting verbosity to " << verbosity << "." << endl);
+    delete dialog;
+    return Action::success;
+  } else {
+    delete dialog;
+    return Action::failure;
+  }
+}
+
+Action::state_ptr CommandLineVerboseAction::performUndo(Action::state_ptr _state) {
+//  ParserLoadXyzState *state = assert_cast<ParserLoadXyzState*>(_state.get());
+
+  return Action::failure;
+//  string newName = state->mol->getName();
+//  state->mol->setName(state->lastName);
+//
+//  return Action::state_ptr(new ParserLoadXyzState(state->mol,newName));
+}
+
+Action::state_ptr CommandLineVerboseAction::performRedo(Action::state_ptr _state){
+  return Action::failure;
+}
+
+bool CommandLineVerboseAction::canUndo() {
+  return false;
+}
+
+bool CommandLineVerboseAction::shouldUndo() {
+  return false;
+}
+
+const string CommandLineVerboseAction::getName() {
+  return NAME;
+}
Index: src/Actions/CmdAction/VerboseAction.hpp
===================================================================
--- src/Actions/CmdAction/VerboseAction.hpp	(revision 97ebf8b2670d891c06f34ede7594c6708e07d886)
+++ src/Actions/CmdAction/VerboseAction.hpp	(revision 97ebf8b2670d891c06f34ede7594c6708e07d886)
@@ -0,0 +1,30 @@
+/*
+ * VerboseAction.hpp
+ *
+ *  Created on: May 9, 2010
+ *      Author: heber
+ */
+
+#ifndef VERBOSEACTION_HPP_
+#define VERBOSEACTION_HPP_
+
+#include "Actions/Action.hpp"
+
+class CommandLineVerboseAction : public Action {
+public:
+  CommandLineVerboseAction();
+  virtual ~CommandLineVerboseAction();
+
+  bool canUndo();
+  bool shouldUndo();
+
+  virtual const std::string getName();
+private:
+  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[];
+};
+
+#endif /* VERBOSEACTION_HPP_ */
Index: src/Actions/CmdAction/VersionAction.cpp
===================================================================
--- src/Actions/CmdAction/VersionAction.cpp	(revision 50dfdae6d8f0ccc9165dcc2f73a1adcd35dd66e1)
+++ src/Actions/CmdAction/VersionAction.cpp	(revision 97ebf8b2670d891c06f34ede7594c6708e07d886)
@@ -16,4 +16,5 @@
 #include "UIElements/UIFactory.hpp"
 #include "UIElements/Dialog.hpp"
+#include "Actions/MapOfActions.hpp"
 
 const char CommandLineVersionAction::NAME[] = "version";
