Index: src/Actions/WorldAction/InputAction.cpp
===================================================================
--- src/Actions/WorldAction/InputAction.cpp	(revision 86cff86835bac81d60b4a25d08f3dacca7c0768c)
+++ src/Actions/WorldAction/InputAction.cpp	(revision 7882e97372845c4211b7017289b0767c7640f0e2)
@@ -23,5 +23,5 @@
 #include "UIElements/UIFactory.hpp"
 #include "UIElements/Dialog.hpp"
-#include "Actions/MapOfActions.hpp"
+#include "UIElements/ValueStorage.hpp"
 
 const char WorldInputAction::NAME[] = "input";
@@ -34,6 +34,13 @@
 {}
 
+Dialog* WorldInputAction::createDialog() {
+  Dialog *dialog = UIFactory::getInstance().makeDialog();
+
+  dialog->queryString(NAME, ValueStorage::getInstance().getDescription(NAME));
+
+  return dialog;
+}
+
 Action::state_ptr WorldInputAction::performCall() {
-  Dialog *dialog = UIFactory::getInstance().makeDialog();
   MoleculeListClass *molecules = World::getInstance().getMolecules();
   molecule *mol = NULL;
@@ -41,44 +48,38 @@
   std::ifstream test;
 
-  dialog->queryString(NAME, &filename, MapOfActions::getInstance().getDescription(NAME));
+  ValueStorage::getInstance().queryCurrentValue(NAME, filename);
 
-  if(dialog->display()) {
-    DoLog(0) && (Log() << Verbose(0) << "Config file given." << endl);
-    if (filename.find('.') != string::npos) {
-      std::string FilenamePrefix = filename.substr(0,filename.find_last_of('.'));
-      std::string FilenameSuffix = filename.substr(filename.find_last_of('.')+1, filename.length());
-      DoLog(1) && (Log() << Verbose(1) << "Setting config file name prefix to " << FilenamePrefix << "." << endl);
-      test.open(filename.c_str());
-      if (test == NULL) {
-        DoLog(1) && (Log() << Verbose(1) << "Specified config file " << filename << " not found." << endl);
-      } else {
-        DoLog(1) && (Log() << Verbose(1) << "Specified config file found, parsing ... ");
-        FormatParserStorage::getInstance().get((std::istream &)test, FilenameSuffix);
-        test.close();
-      }
-      FormatParserStorage::getInstance().SetOutputPrefixForAll(FilenamePrefix);
-      // set mol to first active molecule
-      if (molecules->ListOfMolecules.size() != 0) {
-        for (MoleculeList::iterator ListRunner = molecules->ListOfMolecules.begin(); ListRunner != molecules->ListOfMolecules.end(); ListRunner++)
-          if ((*ListRunner)->ActiveFlag) {
-            mol = *ListRunner;
-            break;
-          }
-      }
-      if (mol == NULL) {
-        mol = World::getInstance().createMolecule();
-        mol->ActiveFlag = true;
-        molecules->insert(mol);
-      }
-      mol->SetNameFromFilename(filename.substr(0,filename.find('.')).c_str());
+  DoLog(0) && (Log() << Verbose(0) << "Config file given." << endl);
+  if (filename.find('.') != string::npos) {
+    std::string FilenamePrefix = filename.substr(0,filename.find_last_of('.'));
+    std::string FilenameSuffix = filename.substr(filename.find_last_of('.')+1, filename.length());
+    DoLog(1) && (Log() << Verbose(1) << "Setting config file name prefix to " << FilenamePrefix << "." << endl);
+    test.open(filename.c_str());
+    if (test == NULL) {
+      DoLog(1) && (Log() << Verbose(1) << "Specified config file " << filename << " not found." << endl);
     } else {
-      DoeLog(1) && (eLog() << Verbose(1) << "Input file does not have a suffix, cannot recognize format." << endl);
+      DoLog(1) && (Log() << Verbose(1) << "Specified config file found, parsing ... ");
+      FormatParserStorage::getInstance().get((std::istream &)test, FilenameSuffix);
+      test.close();
     }
-    delete dialog;
-    return Action::success;
+    FormatParserStorage::getInstance().SetOutputPrefixForAll(FilenamePrefix);
+    // set mol to first active molecule
+    if (molecules->ListOfMolecules.size() != 0) {
+      for (MoleculeList::iterator ListRunner = molecules->ListOfMolecules.begin(); ListRunner != molecules->ListOfMolecules.end(); ListRunner++)
+        if ((*ListRunner)->ActiveFlag) {
+          mol = *ListRunner;
+          break;
+        }
+    }
+    if (mol == NULL) {
+      mol = World::getInstance().createMolecule();
+      mol->ActiveFlag = true;
+      molecules->insert(mol);
+    }
+    mol->SetNameFromFilename(filename.substr(0,filename.find('.')).c_str());
   } else {
-    delete dialog;
-    return Action::failure;
+    DoeLog(1) && (eLog() << Verbose(1) << "Input file does not have a suffix, cannot recognize format." << endl);
   }
+  return Action::success;
 }
 
