Index: molecuilder/src/menu.cpp
===================================================================
--- molecuilder/src/menu.cpp	(revision 70c4aa6bc4a400486908fca99619578c20aae657)
+++ molecuilder/src/menu.cpp	(revision 53f5e61fe983c4b454f53987ff161a14b81eefbd)
@@ -31,4 +31,5 @@
 #include "Menu/SubMenuItem.hpp"
 #include "Actions/MethodAction.hpp"
+#include "Actions/ErrorAction.hpp"
 #include "Views/StreamStringView.hpp"
 #include "Views/MethodStringView.hpp"
@@ -990,42 +991,27 @@
 void oldmenu::MergeMolecules(periodentafel *periode, MoleculeListClass *molecules)
 {
-  char choice;  // menu choice char
-
-  Log() << Verbose(0) << "===========MERGE MOLECULES=====================" << endl;
-  Log() << Verbose(0) << "a - simple add of one molecule to another" << endl;
-  Log() << Verbose(0) << "e - embedding merge of two molecules" << endl;
-  Log() << Verbose(0) << "m - multi-merge of all molecules" << endl;
-  Log() << Verbose(0) << "s - scatter merge of two molecules" << endl;
-  Log() << Verbose(0) << "t - simple merge of two molecules" << endl;
-  Log() << Verbose(0) << "all else - go back" << endl;
-  Log() << Verbose(0) << "===============================================" << endl;
-  Log() << Verbose(0) << "INPUT: ";
-  cin >> choice;
-
-  switch (choice) {
-    default:
-      Log() << Verbose(0) << "Not a valid choice." << endl;
-      break;
-
-    case 'a':
-      SimpleAddMolecules(molecules);
-      break;
-
-    case 'e':
-      embeddMolecules(molecules);
-      break;
-
-    case 'm':
-      multiMergeMolecules(molecules);
-      break;
-
-    case 's':
-      Log() << Verbose(0) << "Not implemented yet." << endl;
-      break;
-
-    case 't':
-      simpleMergeMolecules(molecules);
-      break;
-  }
+  TextMenu *MergeMoleculesMenu = new TextMenu(Log() << Verbose(0), "Merge Molecules");
+
+  Action *simpleAddAction = new MethodAction(boost::bind(&oldmenu::SimpleAddMolecules,this,molecules));
+  new ActionMenuItem('a',"simple add of one molecule to another",MergeMoleculesMenu,simpleAddAction);
+
+  Action *embeddAction = new MethodAction(boost::bind(&oldmenu::embeddMolecules,this,molecules));
+  new ActionMenuItem('e',"embedding merge of two molecules",MergeMoleculesMenu,embeddAction);
+
+  Action *multiMergeAction = new MethodAction(boost::bind(&oldmenu::multiMergeMolecules,this,molecules));
+  new ActionMenuItem('m',"multi-merge of all molecules",MergeMoleculesMenu,multiMergeAction);
+
+  Action *scatterMergeAction = new ErrorAction("Not Implemented yet");
+  new ActionMenuItem('s',"scatter merge of two molecules",MergeMoleculesMenu,scatterMergeAction);
+
+  Action *simpleMergeAction = new MethodAction(boost::bind(&oldmenu::simpleMergeMolecules,this,molecules));
+  new ActionMenuItem('t',"simple merge of two molecules",MergeMoleculesMenu,simpleMergeAction);
+
+  Action *returnAction = new MethodAction(boost::bind(&TextMenu::doQuit,MergeMoleculesMenu));
+  MenuItem *returnItem = new ActionMenuItem('q',"return to Main menu",MergeMoleculesMenu,returnAction);
+
+  MergeMoleculesMenu->addDefault(returnItem);
+
+  MergeMoleculesMenu->display();
 };
 
@@ -1142,6 +1128,6 @@
   new ActionMenuItem('a',"set molecule (in)active",main_menu,setMoleculeAction);
 
-  TextMenu *edit_molecules_menu = new TextMenu(Log() << Verbose(0), "Edit Molecules");
-  new SubMenuItem('e',"edit molecules (load, parse, save)",main_menu,edit_molecules_menu);
+  TextMenu *editMoleculesMenu = new TextMenu(Log() << Verbose(0), "Edit Molecules");
+  new SubMenuItem('e',"edit molecules (load, parse, save)",main_menu,editMoleculesMenu);
 
   Action *manipulateMoleculeAction = new MethodAction(boost::bind(&oldmenu::ManipulateMolecules,this,periode, molecules, configuration));
@@ -1174,25 +1160,25 @@
   // build the EditMoleculesMenu
   Action *createMoleculeAction = new MethodAction(boost::bind(&MoleculeListClass::createNewMolecule,molecules,periode));
-  new ActionMenuItem('c',"create new molecule",edit_molecules_menu,createMoleculeAction);
+  new ActionMenuItem('c',"create new molecule",editMoleculesMenu,createMoleculeAction);
 
   Action *loadMoleculeAction = new MethodAction(boost::bind(&MoleculeListClass::loadFromXYZ,molecules,periode));
-  new ActionMenuItem('l',"load molecule from xyz file",edit_molecules_menu,loadMoleculeAction);
+  new ActionMenuItem('l',"load molecule from xyz file",editMoleculesMenu,loadMoleculeAction);
 
   Action *changeFilenameAction = new MethodAction(boost::bind(&MoleculeListClass::changeName,molecules));
-  new ActionMenuItem('n',"change molecule's name",edit_molecules_menu,changeFilenameAction);
+  new ActionMenuItem('n',"change molecule's name",editMoleculesMenu,changeFilenameAction);
 
   Action *giveFilenameAction = new MethodAction(boost::bind(&MoleculeListClass::setMoleculeFilename,molecules));
-  new ActionMenuItem('N',"give molecules filename",edit_molecules_menu,giveFilenameAction);
+  new ActionMenuItem('N',"give molecules filename",editMoleculesMenu,giveFilenameAction);
 
   Action *parseAtomsAction = new MethodAction(boost::bind(&MoleculeListClass::parseXYZIntoMolecule,molecules));
-  new ActionMenuItem('p',"parse atoms in xyz file into molecule",edit_molecules_menu,parseAtomsAction);
+  new ActionMenuItem('p',"parse atoms in xyz file into molecule",editMoleculesMenu,parseAtomsAction);
 
   Action *eraseMoleculeAction = new MethodAction(boost::bind(&MoleculeListClass::eraseMolecule,molecules));
-  new ActionMenuItem('r',"remove a molecule",edit_molecules_menu,eraseMoleculeAction);
-
-  Action *returnAction = new MethodAction(boost::bind(&TextMenu::doQuit,edit_molecules_menu));
-  MenuItem *returnItem = new ActionMenuItem('q',"return to Main menu",edit_molecules_menu,returnAction);
-
-  edit_molecules_menu->addDefault(returnItem);
+  new ActionMenuItem('r',"remove a molecule",editMoleculesMenu,eraseMoleculeAction);
+
+  Action *returnAction = new MethodAction(boost::bind(&TextMenu::doQuit,editMoleculesMenu));
+  MenuItem *returnItem = new ActionMenuItem('q',"return to Main menu",editMoleculesMenu,returnAction);
+
+  editMoleculesMenu->addDefault(returnItem);
 
   main_menu->display();
