Index: src/Actions/ActionCalls.hpp
===================================================================
--- src/Actions/ActionCalls.hpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/ActionCalls.hpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -1,4 +1,15 @@
 /*
  * ActionCalls.hpp
+ *
+ *  Due to the ValueStorage Action's can be called non-interactively. However,
+ *  when they need parameters, these have to be placed into the Storage which
+ *  bloats the code.
+ *  Rather we want to have one function per Action that obtains the required
+ *  arguments of the action as parameters, places them into the Storage and
+ *  calls the Action. If the Action is a Calculation, i.e. has a return value,
+ *  the ActionCall can easily return the result.
+ *
+ *  The major advantage of using Action is their Undo/Redo- and sequence-
+ *  capabilities.
  *
  *  Created on: Jul 26, 2010
@@ -79,5 +90,5 @@
 void WorldSetDefaultName(std::string &defaultname);
 void WorldSetGaussianBasis(std::string &basisname);
-void WorldSetOutputFormats(vector<std::string> &FormatList);
+void WorldSetOutputFormats(std::vector<std::string> &FormatList);
 
 #endif /* ACTIONCALLS_HPP_ */
Index: src/Actions/WorldAction/AddEmptyBoundaryAction.cpp
===================================================================
--- src/Actions/WorldAction/AddEmptyBoundaryAction.cpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/AddEmptyBoundaryAction.cpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -9,4 +9,5 @@
 
 #include "Actions/WorldAction/AddEmptyBoundaryAction.hpp"
+#include "Actions/ActionCalls.hpp"
 #include "atom.hpp"
 #include "log.hpp"
@@ -33,4 +34,9 @@
 WorldAddEmptyBoundaryAction::~WorldAddEmptyBoundaryAction()
 {}
+
+void WorldAddEmptyBoundary(Vector &boundary) {
+  ValueStorage::getInstance().setCurrentValue(WorldAddEmptyBoundaryAction::NAME, boundary);
+  ActionRegistry::getInstance().getActionByName(WorldAddEmptyBoundaryAction::NAME)->call(Action::NonInteractive);
+};
 
 Dialog* WorldAddEmptyBoundaryAction::createDialog() {
Index: src/Actions/WorldAction/AddEmptyBoundaryAction.hpp
===================================================================
--- src/Actions/WorldAction/AddEmptyBoundaryAction.hpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/AddEmptyBoundaryAction.hpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -10,6 +10,9 @@
 
 #include "Actions/Action.hpp"
+#include "vector.hpp"
 
 class WorldAddEmptyBoundaryAction : public Action {
+  friend void WorldAddEmptyBoundary(Vector &boundary);
+
 public:
   WorldAddEmptyBoundaryAction();
Index: src/Actions/WorldAction/BoundInBoxAction.cpp
===================================================================
--- src/Actions/WorldAction/BoundInBoxAction.cpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/BoundInBoxAction.cpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -9,4 +9,5 @@
 
 #include "Actions/WorldAction/BoundInBoxAction.hpp"
+#include "Actions/ActionCalls.hpp"
 #include "log.hpp"
 #include "molecule.hpp"
@@ -31,4 +32,8 @@
 WorldBoundInBoxAction::~WorldBoundInBoxAction()
 {}
+
+void WorldBoundInBox() {
+  ActionRegistry::getInstance().getActionByName(WorldBoundInBoxAction::NAME)->call(Action::NonInteractive);
+};
 
 Dialog* WorldBoundInBoxAction::createDialog() {
Index: src/Actions/WorldAction/BoundInBoxAction.hpp
===================================================================
--- src/Actions/WorldAction/BoundInBoxAction.hpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/BoundInBoxAction.hpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -12,4 +12,6 @@
 
 class WorldBoundInBoxAction : public Action {
+  friend void WorldBoundInBox();
+
 public:
   WorldBoundInBoxAction();
Index: src/Actions/WorldAction/CenterInBoxAction.cpp
===================================================================
--- src/Actions/WorldAction/CenterInBoxAction.cpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/CenterInBoxAction.cpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -9,4 +9,5 @@
 
 #include "Actions/WorldAction/CenterInBoxAction.hpp"
+#include "Actions/ActionCalls.hpp"
 #include "Box.hpp"
 #include "log.hpp"
@@ -31,4 +32,9 @@
 WorldCenterInBoxAction::~WorldCenterInBoxAction()
 {}
+
+void WorldCenterInBox(Box &_box) {
+  ValueStorage::getInstance().setCurrentValue(WorldCenterInBoxAction::NAME, _box);
+  ActionRegistry::getInstance().getActionByName(WorldCenterInBoxAction::NAME)->call(Action::NonInteractive);
+};
 
 Dialog* WorldCenterInBoxAction::createDialog() {
Index: src/Actions/WorldAction/CenterInBoxAction.hpp
===================================================================
--- src/Actions/WorldAction/CenterInBoxAction.hpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/CenterInBoxAction.hpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -10,6 +10,9 @@
 
 #include "Actions/Action.hpp"
+#include "Box.hpp"
 
 class WorldCenterInBoxAction : public Action {
+  friend void WorldCenterInBox(Box &_box);
+
 public:
   WorldCenterInBoxAction();
Index: src/Actions/WorldAction/CenterOnEdgeAction.cpp
===================================================================
--- src/Actions/WorldAction/CenterOnEdgeAction.cpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/CenterOnEdgeAction.cpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -9,4 +9,5 @@
 
 #include "Actions/WorldAction/CenterOnEdgeAction.hpp"
+#include "Actions/ActionCalls.hpp"
 #include "atom.hpp"
 #include "log.hpp"
@@ -33,4 +34,8 @@
 WorldCenterOnEdgeAction::~WorldCenterOnEdgeAction()
 {}
+
+void WorldCenterOnEdge() {
+  ActionRegistry::getInstance().getActionByName(WorldCenterOnEdgeAction::NAME)->call(Action::NonInteractive);
+};
 
 Dialog* WorldCenterOnEdgeAction::createDialog() {
Index: src/Actions/WorldAction/CenterOnEdgeAction.hpp
===================================================================
--- src/Actions/WorldAction/CenterOnEdgeAction.hpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/CenterOnEdgeAction.hpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -12,4 +12,6 @@
 
 class WorldCenterOnEdgeAction : public Action {
+  friend void WorldCenterOnEdge();
+
 public:
   WorldCenterOnEdgeAction();
Index: src/Actions/WorldAction/ChangeBoxAction.cpp
===================================================================
--- src/Actions/WorldAction/ChangeBoxAction.cpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/ChangeBoxAction.cpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -9,4 +9,5 @@
 
 #include "Actions/WorldAction/ChangeBoxAction.hpp"
+#include "Actions/ActionCalls.hpp"
 #include "log.hpp"
 #include "verbose.hpp"
@@ -32,4 +33,9 @@
 WorldChangeBoxAction::~WorldChangeBoxAction()
 {}
+
+void WorldChangeBox(Box &_box) {
+  ValueStorage::getInstance().setCurrentValue(WorldChangeBoxAction::NAME, _box);
+  ActionRegistry::getInstance().getActionByName(WorldChangeBoxAction::NAME)->call(Action::NonInteractive);
+};
 
 Dialog* WorldChangeBoxAction::createDialog() {
Index: src/Actions/WorldAction/ChangeBoxAction.hpp
===================================================================
--- src/Actions/WorldAction/ChangeBoxAction.hpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/ChangeBoxAction.hpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -10,6 +10,9 @@
 
 #include "Actions/Action.hpp"
+#include "Box.hpp"
 
 class WorldChangeBoxAction : public Action {
+  friend void WorldChangeBox(Box &_box);
+
 public:
   WorldChangeBoxAction();
Index: src/Actions/WorldAction/InputAction.cpp
===================================================================
--- src/Actions/WorldAction/InputAction.cpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/InputAction.cpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -9,4 +9,5 @@
 
 #include "Actions/WorldAction/InputAction.hpp"
+#include "Actions/ActionCalls.hpp"
 #include "log.hpp"
 #include "molecule.hpp"
@@ -33,4 +34,9 @@
 WorldInputAction::~WorldInputAction()
 {}
+
+void WorldInput(std::string &filename) {
+  ValueStorage::getInstance().setCurrentValue(WorldInputAction::NAME, filename);
+  ActionRegistry::getInstance().getActionByName(WorldInputAction::NAME)->call(Action::NonInteractive);
+};
 
 Dialog* WorldInputAction::createDialog() {
Index: src/Actions/WorldAction/InputAction.hpp
===================================================================
--- src/Actions/WorldAction/InputAction.hpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/InputAction.hpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -12,4 +12,6 @@
 
 class WorldInputAction : public Action {
+  friend void WorldInput(std::string &filename);
+
 public:
   WorldInputAction();
Index: src/Actions/WorldAction/OutputAction.cpp
===================================================================
--- src/Actions/WorldAction/OutputAction.cpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/OutputAction.cpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -9,4 +9,5 @@
 
 #include "Actions/WorldAction/OutputAction.hpp"
+#include "Actions/ActionCalls.hpp"
 #include "Parser/ChangeTracker.hpp"
 #include "log.hpp"
@@ -31,4 +32,8 @@
 WorldOutputAction::~WorldOutputAction()
 {}
+
+void WorldOutput() {
+  ActionRegistry::getInstance().getActionByName(WorldOutputAction::NAME)->call(Action::NonInteractive);
+};
 
 Dialog* WorldOutputAction::createDialog() {
Index: src/Actions/WorldAction/OutputAction.hpp
===================================================================
--- src/Actions/WorldAction/OutputAction.hpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/OutputAction.hpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -12,4 +12,6 @@
 
 class WorldOutputAction : public Action {
+  friend void WorldOutput();
+
 public:
   WorldOutputAction();
Index: src/Actions/WorldAction/RemoveSphereOfAtomsAction.cpp
===================================================================
--- src/Actions/WorldAction/RemoveSphereOfAtomsAction.cpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/RemoveSphereOfAtomsAction.cpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -9,6 +9,7 @@
 
 #include "Actions/WorldAction/RemoveSphereOfAtomsAction.hpp"
+#include "Actions/ActionCalls.hpp"
+#include "Descriptors/AtomDescriptor.hpp"
 #include "atom.hpp"
-#include "Descriptors/AtomDescriptor.hpp"
 #include "log.hpp"
 #include "molecule.hpp"
@@ -34,4 +35,10 @@
 WorldRemoveSphereOfAtomsAction::~WorldRemoveSphereOfAtomsAction()
 {}
+
+void WorldRemoveSphereOfAtoms(double radius, Vector &point) {
+  ValueStorage::getInstance().setCurrentValue(WorldRemoveSphereOfAtomsAction::NAME, radius);
+  ValueStorage::getInstance().setCurrentValue("position", point);
+  ActionRegistry::getInstance().getActionByName(WorldRemoveSphereOfAtomsAction::NAME)->call(Action::NonInteractive);
+};
 
 Dialog* WorldRemoveSphereOfAtomsAction::createDialog() {
Index: src/Actions/WorldAction/RemoveSphereOfAtomsAction.hpp
===================================================================
--- src/Actions/WorldAction/RemoveSphereOfAtomsAction.hpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/RemoveSphereOfAtomsAction.hpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -10,6 +10,10 @@
 
 #include "Actions/Action.hpp"
+#include "vector.hpp"
+
 
 class WorldRemoveSphereOfAtomsAction : public Action {
+  friend void WorldRemoveSphereOfAtoms(double radius, Vector &point);
+
 public:
   WorldRemoveSphereOfAtomsAction();
Index: src/Actions/WorldAction/RepeatBoxAction.cpp
===================================================================
--- src/Actions/WorldAction/RepeatBoxAction.cpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/RepeatBoxAction.cpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -9,4 +9,5 @@
 
 #include "Actions/WorldAction/RepeatBoxAction.hpp"
+#include "Actions/ActionCalls.hpp"
 #include "atom.hpp"
 #include "log.hpp"
@@ -37,4 +38,9 @@
 WorldRepeatBoxAction::~WorldRepeatBoxAction()
 {}
+
+void WorldRepeatBox(Vector &Repeater) {
+  ValueStorage::getInstance().setCurrentValue(WorldRepeatBoxAction::NAME, Repeater);
+  ActionRegistry::getInstance().getActionByName(WorldRepeatBoxAction::NAME)->call(Action::NonInteractive);
+};
 
 Dialog * WorldRepeatBoxAction::createDialog() {
Index: src/Actions/WorldAction/RepeatBoxAction.hpp
===================================================================
--- src/Actions/WorldAction/RepeatBoxAction.hpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/RepeatBoxAction.hpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -10,6 +10,9 @@
 
 #include "Actions/Action.hpp"
+#include "vector.hpp"
 
 class WorldRepeatBoxAction : public Action {
+  friend void WorldRepeatBox(Vector &Repeater);
+
 public:
   WorldRepeatBoxAction();
Index: src/Actions/WorldAction/ScaleBoxAction.cpp
===================================================================
--- src/Actions/WorldAction/ScaleBoxAction.cpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/ScaleBoxAction.cpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -9,4 +9,5 @@
 
 #include "Actions/WorldAction/ScaleBoxAction.hpp"
+#include "Actions/ActionCalls.hpp"
 #include "atom.hpp"
 #include "log.hpp"
@@ -34,4 +35,9 @@
 WorldScaleBoxAction::~WorldScaleBoxAction()
 {}
+
+void WorldScaleBox(Vector &Scaler) {
+  ValueStorage::getInstance().setCurrentValue(WorldScaleBoxAction::NAME, Scaler);
+  ActionRegistry::getInstance().getActionByName(WorldScaleBoxAction::NAME)->call(Action::NonInteractive);
+};
 
 Dialog* WorldScaleBoxAction::createDialog() {
Index: src/Actions/WorldAction/ScaleBoxAction.hpp
===================================================================
--- src/Actions/WorldAction/ScaleBoxAction.hpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/ScaleBoxAction.hpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -10,6 +10,9 @@
 
 #include "Actions/Action.hpp"
+#include "vector.hpp"
 
 class WorldScaleBoxAction : public Action {
+  friend void WorldScaleBox(Vector &Scaler);
+
 public:
   WorldScaleBoxAction();
Index: src/Actions/WorldAction/SetDefaultNameAction.cpp
===================================================================
--- src/Actions/WorldAction/SetDefaultNameAction.cpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/SetDefaultNameAction.cpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -9,4 +9,5 @@
 
 #include "Actions/WorldAction/SetDefaultNameAction.hpp"
+#include "Actions/ActionCalls.hpp"
 #include "log.hpp"
 #include "verbose.hpp"
@@ -41,4 +42,9 @@
 WorldSetDefaultNameAction::~WorldSetDefaultNameAction()
 {}
+
+void WorldSetDefaultName(std::string &defaultname) {
+  ValueStorage::getInstance().setCurrentValue(WorldSetDefaultNameAction::NAME, defaultname);
+  ActionRegistry::getInstance().getActionByName(WorldSetDefaultNameAction::NAME)->call(Action::NonInteractive);
+};
 
 Dialog* WorldSetDefaultNameAction::createDialog() {
Index: src/Actions/WorldAction/SetDefaultNameAction.hpp
===================================================================
--- src/Actions/WorldAction/SetDefaultNameAction.hpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/SetDefaultNameAction.hpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -12,4 +12,6 @@
 
 class WorldSetDefaultNameAction : public Action {
+  friend void WorldSetDefaultName(std::string &defaultname);
+
 public:
   WorldSetDefaultNameAction();
Index: src/Actions/WorldAction/SetGaussianBasisAction.cpp
===================================================================
--- src/Actions/WorldAction/SetGaussianBasisAction.cpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/SetGaussianBasisAction.cpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -9,4 +9,5 @@
 
 #include "Actions/WorldAction/SetGaussianBasisAction.hpp"
+#include "Actions/ActionCalls.hpp"
 #include "config.hpp"
 #include "log.hpp"
@@ -43,4 +44,9 @@
 WorldSetGaussianBasisAction::~WorldSetGaussianBasisAction()
 {}
+
+void WorldSetGaussianBasis(std::string &basisname) {
+  ValueStorage::getInstance().setCurrentValue(WorldSetGaussianBasisAction::NAME, basisname);
+  ActionRegistry::getInstance().getActionByName(WorldSetGaussianBasisAction::NAME)->call(Action::NonInteractive);
+};
 
 Dialog* WorldSetGaussianBasisAction::createDialog() {
Index: src/Actions/WorldAction/SetGaussianBasisAction.hpp
===================================================================
--- src/Actions/WorldAction/SetGaussianBasisAction.hpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/SetGaussianBasisAction.hpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -12,4 +12,6 @@
 
 class WorldSetGaussianBasisAction : public Action {
+  friend void WorldSetGaussianBasis(std::string &basisname);
+
 public:
   WorldSetGaussianBasisAction();
Index: src/Actions/WorldAction/SetOutputFormatsAction.cpp
===================================================================
--- src/Actions/WorldAction/SetOutputFormatsAction.cpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/SetOutputFormatsAction.cpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -9,4 +9,5 @@
 
 #include "Actions/WorldAction/SetOutputFormatsAction.hpp"
+#include "Actions/ActionCalls.hpp"
 #include "Parser/ChangeTracker.hpp"
 #include "Parser/FormatParserStorage.hpp"
@@ -32,4 +33,9 @@
 WorldSetOutputFormatsAction::~WorldSetOutputFormatsAction()
 {}
+
+void WorldSetOutputFormats(vector<std::string> &FormatList) {
+  ValueStorage::getInstance().setCurrentValue(WorldSetOutputFormatsAction::NAME, FormatList);
+  ActionRegistry::getInstance().getActionByName(WorldSetOutputFormatsAction::NAME)->call(Action::NonInteractive);
+};
 
 Dialog* WorldSetOutputFormatsAction::createDialog() {
Index: src/Actions/WorldAction/SetOutputFormatsAction.hpp
===================================================================
--- src/Actions/WorldAction/SetOutputFormatsAction.hpp	(revision 628b52952e0e149c79ef35a9bb2f6642e2d6e984)
+++ src/Actions/WorldAction/SetOutputFormatsAction.hpp	(revision a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8)
@@ -11,5 +11,9 @@
 #include "Actions/Action.hpp"
 
+#include <vector>
+
 class WorldSetOutputFormatsAction : public Action {
+  friend void WorldSetOutputFormats(std::vector<std::string> &FormatList);
+
 public:
   WorldSetOutputFormatsAction();
