Index: src/Menu/MenuItem.cpp
===================================================================
--- src/Menu/MenuItem.cpp	(revision f767d4750ddd955bee133b42bfa6663168440d6f)
+++ src/Menu/MenuItem.cpp	(revision 5b9bba364d0b3255eb2379d37a962641805d378b)
@@ -16,5 +16,5 @@
 {
   description = new string(_description);
-  menu->addItem(this);
+  add_to_menu(menu);
 }
 
@@ -43,2 +43,13 @@
   return s.str();
 }
+
+void MenuItem::add_to_menu(Menu* menu) {
+  if(!wasAdded()) {
+    menu->addItem(this);
+    added=true;
+  }
+}
+
+bool MenuItem::wasAdded(){
+  return added;
+}
Index: src/Menu/MenuItem.hpp
===================================================================
--- src/Menu/MenuItem.hpp	(revision f767d4750ddd955bee133b42bfa6663168440d6f)
+++ src/Menu/MenuItem.hpp	(revision 5b9bba364d0b3255eb2379d37a962641805d378b)
@@ -19,4 +19,5 @@
   char trigger;
   string *description;
+  bool added;
 
 public:
@@ -32,4 +33,7 @@
   char getTrigger();
 
+  void add_to_menu(Menu*);
+  bool wasAdded();
+
 protected:
   void setDescription(string);
Index: src/Menu/SeperatorItem.cpp
===================================================================
--- src/Menu/SeperatorItem.cpp	(revision f767d4750ddd955bee133b42bfa6663168440d6f)
+++ src/Menu/SeperatorItem.cpp	(revision 5b9bba364d0b3255eb2379d37a962641805d378b)
@@ -5,11 +5,25 @@
  *      Author: crueger
  */
+#include <string>
+#include <sstream>
 
 #include "Menu/SeperatorItem.hpp"
 #include "Menu/Menu.hpp"
-#include <string>
+#include "defs.hpp"
+
 
 SeperatorItem::SeperatorItem(Menu* menu):
-MenuItem('\0',"",menu)
+MenuItem('\0',"",menu),
+spacer(STD_SEPERATOR_SPACER),
+length(STD_MENU_LENGTH)
+{
+  // TODO Auto-generated constructor stub
+
+}
+
+SeperatorItem::SeperatorItem(Menu* menu,char _spacer, int _length):
+MenuItem('\0',"",menu),
+spacer(_spacer),
+length(_length)
 {
   // TODO Auto-generated constructor stub
@@ -31,4 +45,7 @@
 
 const string SeperatorItem::formatEntry(){
-  return string ("---------------------------------------------------");
+  stringstream s;
+  for(int i=0; i<length;i++)
+    s << spacer;
+  return s.str();
 }
Index: src/Menu/SeperatorItem.hpp
===================================================================
--- src/Menu/SeperatorItem.hpp	(revision f767d4750ddd955bee133b42bfa6663168440d6f)
+++ src/Menu/SeperatorItem.hpp	(revision 5b9bba364d0b3255eb2379d37a962641805d378b)
@@ -15,4 +15,5 @@
 public:
   SeperatorItem(Menu*);
+  SeperatorItem(Menu*,char,int);
   virtual ~SeperatorItem();
 
@@ -23,4 +24,7 @@
 
   virtual const string formatEntry();
+private:
+  char spacer;
+  int length;
 };
 
Index: src/Menu/SubMenuItem.cpp
===================================================================
--- src/Menu/SubMenuItem.cpp	(revision f767d4750ddd955bee133b42bfa6663168440d6f)
+++ src/Menu/SubMenuItem.cpp	(revision 5b9bba364d0b3255eb2379d37a962641805d378b)
@@ -8,5 +8,13 @@
 #include "SubMenuItem.hpp"
 
-SubMenuItem::SubMenuItem(char _trigger,const char* _description,Menu* _menu,ostream& _outputter,string _title) :
+SubMenuItem::SubMenuItem(char _trigger,const char* _description,Menu* _menu,
+                         ostream& _outputter,string _title,char _spacer, int _length) :
+MenuItem(_trigger,_description,_menu),
+TextMenu(_outputter,_title,_spacer,_length)
+{
+}
+
+SubMenuItem::SubMenuItem(char _trigger,const char* _description,Menu* _menu,
+                         ostream& _outputter,string _title) :
 MenuItem(_trigger,_description,_menu),
 TextMenu(_outputter,_title)
Index: src/Menu/SubMenuItem.hpp
===================================================================
--- src/Menu/SubMenuItem.hpp	(revision f767d4750ddd955bee133b42bfa6663168440d6f)
+++ src/Menu/SubMenuItem.hpp	(revision 5b9bba364d0b3255eb2379d37a962641805d378b)
@@ -10,4 +10,5 @@
 {
 public:
+  SubMenuItem(char,const char*,Menu *,ostream&,string,char,int);
   SubMenuItem(char,const char*,Menu *,ostream&,string);
   virtual ~SubMenuItem();
Index: src/Menu/TextMenu.cpp
===================================================================
--- src/Menu/TextMenu.cpp	(revision f767d4750ddd955bee133b42bfa6663168440d6f)
+++ src/Menu/TextMenu.cpp	(revision 5b9bba364d0b3255eb2379d37a962641805d378b)
@@ -8,10 +8,23 @@
 #include <boost/bind.hpp>
 #include <iostream>
-#include "TextMenu.hpp"
-#include "MenuItem.hpp"
+#include <cmath>
+#include "defs.hpp"
+#include "Menu/TextMenu.hpp"
+#include "Menu/MenuItem.hpp"
+
+TextMenu::TextMenu(ostream& _outputter, string _title, char _spacer,int _length) :
+outputter(_outputter),
+title(_title),
+spacer(_spacer),
+length(_length),
+quit(false)
+{
+}
 
 TextMenu::TextMenu(ostream& _outputter, string _title) :
 outputter(_outputter),
 title(_title),
+spacer(STD_MENU_TITLE_SPACER),
+length(STD_MENU_LENGTH),
 quit(false)
 {
@@ -48,5 +61,12 @@
   char choice;
   do {
-    outputter << title << "\n";
+    int pre = floor((length - title.length()) /2.0);
+    int post = ceil((length - title.length()) /2.0);
+    for(int i=0;i<pre;i++)
+      outputter << spacer;
+    outputter << title;
+    for(int i=0;i<post;i++)
+          outputter << spacer;
+    outputter << '\n';
     for_each(items.begin(), items.end(), boost::bind(&TextMenu::showEntry,this,_1));
     outputter.flush();
Index: src/Menu/TextMenu.hpp
===================================================================
--- src/Menu/TextMenu.hpp	(revision f767d4750ddd955bee133b42bfa6663168440d6f)
+++ src/Menu/TextMenu.hpp	(revision 5b9bba364d0b3255eb2379d37a962641805d378b)
@@ -20,4 +20,5 @@
 {
 public:
+  TextMenu(ostream&,string,char,int);
   TextMenu(ostream&,string);
   virtual ~TextMenu();
@@ -37,4 +38,7 @@
   ostream& outputter;
   string title;
+  char spacer;
+  int length;
+
   bool quit;
 };
Index: src/defs.hpp
===================================================================
--- src/defs.hpp	(revision f767d4750ddd955bee133b42bfa6663168440d6f)
+++ src/defs.hpp	(revision 5b9bba364d0b3255eb2379d37a962641805d378b)
@@ -77,3 +77,7 @@
 #define UPDATECOUNT 10  //!< update ten sites per BOSSANOVA interval
 
+#define STD_MENU_LENGTH 60
+#define STD_MENU_TITLE_SPACER '='
+#define STD_SEPERATOR_SPACER '-'
+
 #endif /*DEFS_HPP_*/
