Index: src/Actions/MethodAction.cpp
===================================================================
--- src/Actions/MethodAction.cpp	(revision 65b6e082cfd9dc7a3425e801a334748f57e321ab)
+++ src/Actions/MethodAction.cpp	(revision 21c2461c78c147130738812a65af19b9c6c18851)
@@ -7,4 +7,5 @@
 
 #include <iostream>
+#include <boost/function.hpp>
 
 #include "MethodAction.hpp"
@@ -12,8 +13,7 @@
 using namespace std;
 
-MethodAction::MethodAction()
+MethodAction::MethodAction(boost::function<void()> _executeMethod) :
+executeMethod(_executeMethod)
 {
-  // TODO Auto-generated constructor stub
-
 }
 
Index: src/Actions/MethodAction.hpp
===================================================================
--- src/Actions/MethodAction.hpp	(revision 65b6e082cfd9dc7a3425e801a334748f57e321ab)
+++ src/Actions/MethodAction.hpp	(revision 21c2461c78c147130738812a65af19b9c6c18851)
@@ -16,5 +16,5 @@
 {
 public:
-  MethodAction();
+  MethodAction(boost::function<void()>);
   virtual ~MethodAction();
 
Index: src/menu.cpp
===================================================================
--- src/menu.cpp	(revision 65b6e082cfd9dc7a3425e801a334748f57e321ab)
+++ src/menu.cpp	(revision 21c2461c78c147130738812a65af19b9c6c18851)
@@ -1217,41 +1217,56 @@
 }
 
+void oldmenu::notImplementedYet() {
+  Log() << Verbose(0) << "This method has not yet been moved to an appropriate class." << endl;
+}
+
 void oldmenu::perform(MoleculeListClass *molecules, config *configuration, periodentafel *periode, char *ConfigFileName)
 {
   TextMenu *main_menu = new TextMenu(Log() << Verbose(0), "Main Menu");
 
-  ActionMenuItem *setMolecule = new ActionMenuItem('a',"set molecule (in)active",main_menu,new MethodAction());
-  ActionMenuItem *editMolecule = new ActionMenuItem('e',"edit molecules (load, parse, save)",main_menu,new MethodAction());
-  ActionMenuItem *manipulateAtomsGlobal = new ActionMenuItem('g',"globally manipulate atoms in molecule",main_menu,new MethodAction());
-  ActionMenuItem *mergeMolecules = new ActionMenuItem('M',"Merge molecules",main_menu,new MethodAction());
-  ActionMenuItem *manipulateAtoms = new ActionMenuItem('m',"manipulate atoms",main_menu,new MethodAction());
+  MethodAction *setMoleculeAction = new MethodAction(boost::bind(&oldmenu::notImplementedYet,this));
+  new ActionMenuItem('a',"set molecule (in)active",main_menu,setMoleculeAction);
+
+  MethodAction *editMoleculeAction = new MethodAction(boost::bind(&oldmenu::EditMolecules,this,periode, molecules));
+  new ActionMenuItem('e',"edit molecules (load, parse, save)",main_menu,editMoleculeAction);
+
+  MethodAction *manipulateMoleculeAction = new MethodAction(boost::bind(&oldmenu::ManipulateMolecules,this,periode, molecules, configuration));
+  new ActionMenuItem('g',"globally manipulate atoms in molecule",main_menu,manipulateMoleculeAction);
+
+  MethodAction *mergeMoleculeAction = new MethodAction(boost::bind(&oldmenu::MergeMolecules,this,periode, molecules));
+  new ActionMenuItem('M',"Merge molecules",main_menu,mergeMoleculeAction);
+
+  MethodAction *manipulateAtomsAction = new MethodAction(boost::bind(&oldmenu::ManipulateAtoms,this,periode, molecules, configuration));
+  new ActionMenuItem('m',"manipulate atoms",main_menu,manipulateAtomsAction);
 
   new SeperatorItem(main_menu);
-  ActionMenuItem *editConfig = new ActionMenuItem('c',"edit the current configuration",main_menu,new MethodAction());
+
+  MethodAction *editConfigAction = new MethodAction(boost::bind(&config::Edit,configuration));
+  new ActionMenuItem('c',"edit the current configuration",main_menu,editConfigAction);
+
   new SeperatorItem(main_menu);
-  ActionMenuItem *saveSetup = new ActionMenuItem('s',"save current setup to config file",main_menu,new MethodAction());
-  ActionMenuItem *callTest = new ActionMenuItem('T',"call the current test routine",main_menu,new MethodAction());
-
-  MethodAction *quitAction = new MethodAction();
-  quitAction->executeMethod = boost::bind(&TextMenu::doQuit,main_menu);
+
+  MethodAction *saveConfigAction = new MethodAction(boost::bind(&oldmenu::SaveConfig,this,ConfigFileName, configuration, periode, molecules));
+  new ActionMenuItem('s',"save current setup to config file",main_menu,saveConfigAction);
+
+  MethodAction *doTestAction = new MethodAction(boost::bind(&oldmenu::testroutine,this,molecules));
+  new ActionMenuItem('T',"call the current test routine",main_menu,doTestAction);
+
+  MethodAction *quitAction = new MethodAction(boost::bind(&TextMenu::doQuit,main_menu));
   new ActionMenuItem('q',"quit",main_menu,quitAction);
 
 
-  /*main_menu->addItem(setMolecule);
-  main_menu->addItem(editMolecule);
-  main_menu->addItem(manipulateAtomsGlobal);
-  main_menu->addItem(mergeMolecules);
-  main_menu->addItem(manipulateAtoms);
-  //TODO: Seperator
-  main_menu->addItem(editConfig);
-  //TODO: Seperator
-  main_menu->addItem(saveSetup);
-  main_menu->addItem(callTest);
-  main_menu->addItem(quit);
-
-*/
   main_menu->display();
 
 
+  delete setMoleculeAction;
+  delete editMoleculeAction;
+  delete manipulateMoleculeAction;
+  delete mergeMoleculeAction;
+  delete manipulateAtomsAction;
+  delete editConfigAction;
+  delete saveConfigAction;
+  delete doTestAction;
+  delete quitAction;
 
 #if 0
@@ -1264,6 +1279,6 @@
     molecules->Enumerate((ofstream *)&cout);
     Log() << Verbose(0) << "============Menu===============================" << endl;
-    Log() << Verbose(0) << "a - set molecule (in)active" << endl;
-    Log() << Verbose(0) << "e - edit molecules (load, parse, save)" << endl;
+    Log() << Verbose(0) << "a - set molecule (in)active" << endl; //to be moved
+    Log() << Verbose(0) << "e - edit molecules (load, parse, save)" << endl; // done
     Log() << Verbose(0) << "g - globally manipulate atoms in molecule" << endl;
     Log() << Verbose(0) << "M - Merge molecules" << endl;
@@ -1274,5 +1289,5 @@
     Log() << Verbose(0) << "s - save current setup to config file" << endl;
     Log() << Verbose(0) << "T - call the current test routine" << endl;
-    Log() << Verbose(0) << "q - quit" << endl;
+    Log() << Verbose(0) << "q - quit" << endl; //done
     Log() << Verbose(0) << "===============================================" << endl;
     Log() << Verbose(0) << "Input: ";
Index: src/menu.hpp
===================================================================
--- src/menu.hpp	(revision 65b6e082cfd9dc7a3425e801a334748f57e321ab)
+++ src/menu.hpp	(revision 21c2461c78c147130738812a65af19b9c6c18851)
@@ -22,4 +22,5 @@
   virtual ~oldmenu();
 
+  void notImplementedYet();
   void perform(MoleculeListClass *, config *, periodentafel *, char *);
   void SaveConfig(char *, config *, periodentafel *, MoleculeListClass *);
