Index: src/Actions/SelectionAction/AllAtomsAction.cpp
===================================================================
--- src/Actions/SelectionAction/AllAtomsAction.cpp	(revision 215b89c1e9cba45cc93cbfeab08c569dbea299a7)
+++ src/Actions/SelectionAction/AllAtomsAction.cpp	(revision 3b7dfb2ecf62a955b44dcc1485337e8a43d366bf)
@@ -9,4 +9,5 @@
 
 #include "Actions/SelectionAction/AllAtomsAction.hpp"
+#include "Actions/ActionCalls.hpp"
 #include "Descriptors/AtomDescriptor.hpp"
 #include "atom.hpp"
@@ -43,4 +44,8 @@
 SelectionAllAtomsAction::~SelectionAllAtomsAction()
 {}
+
+void SelectionAllAtoms() {
+  ActionRegistry::getInstance().getActionByName(SelectionAllAtomsAction::NAME)->call(Action::NonInteractive);
+};
 
 Dialog* SelectionAllAtomsAction::createDialog() {
Index: src/Actions/SelectionAction/AllAtomsAction.hpp
===================================================================
--- src/Actions/SelectionAction/AllAtomsAction.hpp	(revision 215b89c1e9cba45cc93cbfeab08c569dbea299a7)
+++ src/Actions/SelectionAction/AllAtomsAction.hpp	(revision 3b7dfb2ecf62a955b44dcc1485337e8a43d366bf)
@@ -12,4 +12,6 @@
 
 class SelectionAllAtomsAction : public Action {
+  friend void SelectionAllAtoms();
+
 public:
   SelectionAllAtomsAction();
Index: src/Actions/SelectionAction/AllMoleculesAction.cpp
===================================================================
--- src/Actions/SelectionAction/AllMoleculesAction.cpp	(revision 215b89c1e9cba45cc93cbfeab08c569dbea299a7)
+++ src/Actions/SelectionAction/AllMoleculesAction.cpp	(revision 3b7dfb2ecf62a955b44dcc1485337e8a43d366bf)
@@ -9,4 +9,5 @@
 
 #include "Actions/SelectionAction/AllMoleculesAction.hpp"
+#include "Actions/ActionCalls.hpp"
 #include "Descriptors/MoleculeDescriptor.hpp"
 #include "atom.hpp"
@@ -43,4 +44,8 @@
 SelectionAllMoleculesAction::~SelectionAllMoleculesAction()
 {}
+
+void SelectionAllMolecules() {
+  ActionRegistry::getInstance().getActionByName(SelectionAllMoleculesAction::NAME)->call(Action::NonInteractive);
+};
 
 Dialog* SelectionAllMoleculesAction::createDialog() {
Index: src/Actions/SelectionAction/AllMoleculesAction.hpp
===================================================================
--- src/Actions/SelectionAction/AllMoleculesAction.hpp	(revision 215b89c1e9cba45cc93cbfeab08c569dbea299a7)
+++ src/Actions/SelectionAction/AllMoleculesAction.hpp	(revision 3b7dfb2ecf62a955b44dcc1485337e8a43d366bf)
@@ -12,4 +12,6 @@
 
 class SelectionAllMoleculesAction : public Action {
+  friend void SelectionAllMolecules();
+
 public:
   SelectionAllMoleculesAction();
Index: src/Actions/SelectionAction/AtomByIdAction.cpp
===================================================================
--- src/Actions/SelectionAction/AtomByIdAction.cpp	(revision 215b89c1e9cba45cc93cbfeab08c569dbea299a7)
+++ src/Actions/SelectionAction/AtomByIdAction.cpp	(revision 3b7dfb2ecf62a955b44dcc1485337e8a43d366bf)
@@ -9,4 +9,5 @@
 
 #include "Actions/SelectionAction/AtomByIdAction.hpp"
+#include "Actions/ActionCalls.hpp"
 #include "atom.hpp"
 #include "log.hpp"
@@ -42,4 +43,9 @@
 SelectionAtomByIdAction::~SelectionAtomByIdAction()
 {}
+
+void SelectionAtomById(atom *_atom) {
+  ValueStorage::getInstance().setCurrentValue(SelectionAtomByIdAction::NAME, _atom);
+  ActionRegistry::getInstance().getActionByName(SelectionAtomByIdAction::NAME)->call(Action::NonInteractive);
+};
 
 Dialog* SelectionAtomByIdAction::createDialog() {
Index: src/Actions/SelectionAction/AtomByIdAction.hpp
===================================================================
--- src/Actions/SelectionAction/AtomByIdAction.hpp	(revision 215b89c1e9cba45cc93cbfeab08c569dbea299a7)
+++ src/Actions/SelectionAction/AtomByIdAction.hpp	(revision 3b7dfb2ecf62a955b44dcc1485337e8a43d366bf)
@@ -11,5 +11,9 @@
 #include "Actions/Action.hpp"
 
+class atom;
+
 class SelectionAtomByIdAction : public Action {
+  friend void SelectionAtomById(atom *_atom);
+
 public:
   SelectionAtomByIdAction();
Index: src/Actions/SelectionAction/MoleculeByIdAction.cpp
===================================================================
--- src/Actions/SelectionAction/MoleculeByIdAction.cpp	(revision 215b89c1e9cba45cc93cbfeab08c569dbea299a7)
+++ src/Actions/SelectionAction/MoleculeByIdAction.cpp	(revision 3b7dfb2ecf62a955b44dcc1485337e8a43d366bf)
@@ -9,4 +9,5 @@
 
 #include "Actions/SelectionAction/MoleculeByIdAction.hpp"
+#include "Actions/ActionCalls.hpp"
 #include "molecule.hpp"
 #include "log.hpp"
@@ -42,4 +43,9 @@
 SelectionMoleculeByIdAction::~SelectionMoleculeByIdAction()
 {}
+
+void SelectionMoleculeById(molecule *_mol) {
+  ValueStorage::getInstance().setCurrentValue(SelectionMoleculeByIdAction::NAME, _mol);
+  ActionRegistry::getInstance().getActionByName(SelectionMoleculeByIdAction::NAME)->call(Action::NonInteractive);
+};
 
 Dialog* SelectionMoleculeByIdAction::createDialog() {
Index: src/Actions/SelectionAction/MoleculeByIdAction.hpp
===================================================================
--- src/Actions/SelectionAction/MoleculeByIdAction.hpp	(revision 215b89c1e9cba45cc93cbfeab08c569dbea299a7)
+++ src/Actions/SelectionAction/MoleculeByIdAction.hpp	(revision 3b7dfb2ecf62a955b44dcc1485337e8a43d366bf)
@@ -11,5 +11,9 @@
 #include "Actions/Action.hpp"
 
+class molecule;
+
 class SelectionMoleculeByIdAction : public Action {
+  friend void SelectionMoleculeById(molecule *_mol);
+
 public:
   SelectionMoleculeByIdAction();
Index: src/Actions/SelectionAction/NotAllAtomsAction.cpp
===================================================================
--- src/Actions/SelectionAction/NotAllAtomsAction.cpp	(revision 215b89c1e9cba45cc93cbfeab08c569dbea299a7)
+++ src/Actions/SelectionAction/NotAllAtomsAction.cpp	(revision 3b7dfb2ecf62a955b44dcc1485337e8a43d366bf)
@@ -9,4 +9,5 @@
 
 #include "Actions/SelectionAction/NotAllAtomsAction.hpp"
+#include "Actions/ActionCalls.hpp"
 #include "Descriptors/AtomDescriptor.hpp"
 #include "atom.hpp"
@@ -43,4 +44,8 @@
 SelectionNotAllAtomsAction::~SelectionNotAllAtomsAction()
 {}
+
+void SelectionNotAllAtoms() {
+  ActionRegistry::getInstance().getActionByName(SelectionNotAllAtomsAction::NAME)->call(Action::NonInteractive);
+};
 
 Dialog* SelectionNotAllAtomsAction::createDialog() {
Index: src/Actions/SelectionAction/NotAllAtomsAction.hpp
===================================================================
--- src/Actions/SelectionAction/NotAllAtomsAction.hpp	(revision 215b89c1e9cba45cc93cbfeab08c569dbea299a7)
+++ src/Actions/SelectionAction/NotAllAtomsAction.hpp	(revision 3b7dfb2ecf62a955b44dcc1485337e8a43d366bf)
@@ -12,4 +12,6 @@
 
 class SelectionNotAllAtomsAction : public Action {
+  friend void SelectionNotAllAtoms();
+
 public:
   SelectionNotAllAtomsAction();
Index: src/Actions/SelectionAction/NotAllMoleculesAction.cpp
===================================================================
--- src/Actions/SelectionAction/NotAllMoleculesAction.cpp	(revision 215b89c1e9cba45cc93cbfeab08c569dbea299a7)
+++ src/Actions/SelectionAction/NotAllMoleculesAction.cpp	(revision 3b7dfb2ecf62a955b44dcc1485337e8a43d366bf)
@@ -9,4 +9,5 @@
 
 #include "Actions/SelectionAction/NotAllMoleculesAction.hpp"
+#include "Actions/ActionCalls.hpp"
 #include "Descriptors/MoleculeDescriptor.hpp"
 #include "atom.hpp"
@@ -43,4 +44,8 @@
 SelectionNotAllMoleculesAction::~SelectionNotAllMoleculesAction()
 {}
+
+void SelectionNotAllMolecules() {
+  ActionRegistry::getInstance().getActionByName(SelectionNotAllMoleculesAction::NAME)->call(Action::NonInteractive);
+};
 
 Dialog* SelectionNotAllMoleculesAction::createDialog() {
Index: src/Actions/SelectionAction/NotAllMoleculesAction.hpp
===================================================================
--- src/Actions/SelectionAction/NotAllMoleculesAction.hpp	(revision 215b89c1e9cba45cc93cbfeab08c569dbea299a7)
+++ src/Actions/SelectionAction/NotAllMoleculesAction.hpp	(revision 3b7dfb2ecf62a955b44dcc1485337e8a43d366bf)
@@ -12,4 +12,6 @@
 
 class SelectionNotAllMoleculesAction : public Action {
+  friend void SelectionNotAllMolecules();
+
 public:
   SelectionNotAllMoleculesAction();
Index: src/Actions/SelectionAction/NotAtomByIdAction.cpp
===================================================================
--- src/Actions/SelectionAction/NotAtomByIdAction.cpp	(revision 215b89c1e9cba45cc93cbfeab08c569dbea299a7)
+++ src/Actions/SelectionAction/NotAtomByIdAction.cpp	(revision 3b7dfb2ecf62a955b44dcc1485337e8a43d366bf)
@@ -9,4 +9,5 @@
 
 #include "Actions/SelectionAction/NotAtomByIdAction.hpp"
+#include "Actions/ActionCalls.hpp"
 #include "atom.hpp"
 #include "log.hpp"
@@ -42,4 +43,9 @@
 SelectionNotAtomByIdAction::~SelectionNotAtomByIdAction()
 {}
+
+void SelectionNotAtomById(atom *_atom) {
+  ValueStorage::getInstance().setCurrentValue(SelectionNotAtomByIdAction::NAME, _atom);
+  ActionRegistry::getInstance().getActionByName(SelectionNotAtomByIdAction::NAME)->call(Action::NonInteractive);
+};
 
 Dialog* SelectionNotAtomByIdAction::createDialog() {
Index: src/Actions/SelectionAction/NotAtomByIdAction.hpp
===================================================================
--- src/Actions/SelectionAction/NotAtomByIdAction.hpp	(revision 215b89c1e9cba45cc93cbfeab08c569dbea299a7)
+++ src/Actions/SelectionAction/NotAtomByIdAction.hpp	(revision 3b7dfb2ecf62a955b44dcc1485337e8a43d366bf)
@@ -11,5 +11,9 @@
 #include "Actions/Action.hpp"
 
+class atom;
+
 class SelectionNotAtomByIdAction : public Action {
+  friend void SelectionNotAtomById(atom *_atom);
+
 public:
   SelectionNotAtomByIdAction();
Index: src/Actions/SelectionAction/NotMoleculeByIdAction.cpp
===================================================================
--- src/Actions/SelectionAction/NotMoleculeByIdAction.cpp	(revision 215b89c1e9cba45cc93cbfeab08c569dbea299a7)
+++ src/Actions/SelectionAction/NotMoleculeByIdAction.cpp	(revision 3b7dfb2ecf62a955b44dcc1485337e8a43d366bf)
@@ -9,4 +9,5 @@
 
 #include "Actions/SelectionAction/NotMoleculeByIdAction.hpp"
+#include "Actions/ActionCalls.hpp"
 #include "molecule.hpp"
 #include "log.hpp"
@@ -42,4 +43,9 @@
 SelectionNotMoleculeByIdAction::~SelectionNotMoleculeByIdAction()
 {}
+
+void SelectionNotMoleculeById(molecule *_mol) {
+  ValueStorage::getInstance().setCurrentValue(SelectionNotMoleculeByIdAction::NAME, _mol);
+  ActionRegistry::getInstance().getActionByName(SelectionNotMoleculeByIdAction::NAME)->call(Action::NonInteractive);
+};
 
 Dialog* SelectionNotMoleculeByIdAction::createDialog() {
Index: src/Actions/SelectionAction/NotMoleculeByIdAction.hpp
===================================================================
--- src/Actions/SelectionAction/NotMoleculeByIdAction.hpp	(revision 215b89c1e9cba45cc93cbfeab08c569dbea299a7)
+++ src/Actions/SelectionAction/NotMoleculeByIdAction.hpp	(revision 3b7dfb2ecf62a955b44dcc1485337e8a43d366bf)
@@ -11,5 +11,9 @@
 #include "Actions/Action.hpp"
 
+class molecule;
+
 class SelectionNotMoleculeByIdAction : public Action {
+  friend void SelectionNotMoleculeById(molecule *_mol);
+
 public:
   SelectionNotMoleculeByIdAction();
