Index: src/unittests/ActionSequenceTest.cpp
===================================================================
--- src/unittests/ActionSequenceTest.cpp	(revision 8bcf3f12b38ffa3e7252dadca491edacb57f7d05)
+++ src/unittests/ActionSequenceTest.cpp	(revision c38826b3bf15f17943193456d55be73246628ebd)
@@ -44,5 +44,6 @@
 {
 public:
-  canUndoActionStub(): Action("canUndoActionStub",false){}
+  canUndoActionStub(const ActionTraits &_trait):
+    Action(_trait,false){}
   virtual ~canUndoActionStub(){}
 
@@ -75,5 +76,6 @@
 {
 public:
-  cannotUndoActionStub() : Action("cannotUndoActionStub",false){}
+  cannotUndoActionStub(const ActionTraits &_trait) :
+    Action(_trait,false){}
   virtual ~cannotUndoActionStub(){}
 
@@ -106,6 +108,6 @@
 {
 public:
-  wasCalledActionStub() :
-      Action("wasCalledActionStub",false),
+  wasCalledActionStub(const ActionTraits &_trait) :
+      Action(_trait,false),
       called(false)
   {}
@@ -153,13 +155,16 @@
   UIFactory::makeUserInterface("Dummy");
   // create some necessary stubs used in this test
-  positive1 = new canUndoActionStub();
-  positive2 = new canUndoActionStub();
-  negative1 = new cannotUndoActionStub();
-  negative2 = new cannotUndoActionStub();
-
-  shouldCall1 = new wasCalledActionStub();
-  shouldCall2 = new wasCalledActionStub();
-  shouldNotCall1 = new wasCalledActionStub();
-  shouldNotCall2 = new wasCalledActionStub();
+  ActionTraits canUndoTrait("canUndoActionStub");
+  ActionTraits cannotUndoTrait("cannotUndoActionStub");
+  positive1 = new canUndoActionStub(canUndoTrait);
+  positive2 = new canUndoActionStub(canUndoTrait);
+  negative1 = new cannotUndoActionStub(cannotUndoTrait);
+  negative2 = new cannotUndoActionStub(cannotUndoTrait);
+
+  ActionTraits wasCalledTrait("wasCalledActionStub");
+  shouldCall1 = new wasCalledActionStub(wasCalledTrait);
+  shouldCall2 = new wasCalledActionStub(wasCalledTrait);
+  shouldNotCall1 = new wasCalledActionStub(wasCalledTrait);
+  shouldNotCall2 = new wasCalledActionStub(wasCalledTrait);
 
 }
@@ -254,10 +259,12 @@
 void ActionSequenceTest::doesUndoTest(){
   ActionSequence *sequence = new ActionSequence();
-  wasCalledActionStub *wasCalled1 = new wasCalledActionStub();
-  wasCalledActionStub *wasCalled2 = new wasCalledActionStub();
+  ActionTraits wasCalledTrait("wasCalledActionStub");
+  wasCalledActionStub *wasCalled1 = new wasCalledActionStub(wasCalledTrait);
+  wasCalledActionStub *wasCalled2 = new wasCalledActionStub(wasCalledTrait);
   sequence->addAction(wasCalled1);
   sequence->addAction(wasCalled2);
 
-  MakroAction act("Test MakroAction",sequence,false);
+  ActionTraits MakroTrait("Test MakroAction");
+  MakroAction act(MakroTrait,sequence,false);
 
   act.call();
Index: src/unittests/Makefile.am
===================================================================
--- src/unittests/Makefile.am	(revision 8bcf3f12b38ffa3e7252dadca491edacb57f7d05)
+++ src/unittests/Makefile.am	(revision c38826b3bf15f17943193456d55be73246628ebd)
@@ -38,4 +38,5 @@
   periodentafelTest \
   PlaneUnittest \
+  Registry \
   ShapeUnittest \
   SingletonTest \
@@ -97,4 +98,5 @@
   periodentafelTest.cpp \
   PlaneUnittest.cpp \
+  RegistryUnitTest.cpp \
   ShapeUnittest.cpp \
   SingletonTest.cpp \
@@ -132,8 +134,9 @@
   MenuDescriptionUnitTest.hpp \
   MoleculeDescriptorTest.hpp \
+  ObserverTest.hpp \
   periodentafelTest.hpp \
   ParserUnitTest.hpp \
   PlaneUnittest.hpp \
-  ObserverTest.hpp \
+  RegistryUnitTest.hpp \
   SingletonTest.hpp \
   stackclassunittest.hpp \
@@ -234,4 +237,7 @@
 PlaneUnittest_LDADD = ${ALLLIBS}
 
+Registry_SOURCES = UnitTestMain.cpp RegistryUnitTest.cpp RegistryUnitTest.hpp
+Registry_LDADD = ${ALLLIBS}
+
 ShapeUnittest_SOURCES = UnitTestMain.cpp ShapeUnittest.cpp ShapeUnittest.hpp
 ShapeUnittest_LDADD = ${ALLLIBS}
Index: src/unittests/MenuDescriptionUnitTest.cpp
===================================================================
--- src/unittests/MenuDescriptionUnitTest.cpp	(revision 8bcf3f12b38ffa3e7252dadca491edacb57f7d05)
+++ src/unittests/MenuDescriptionUnitTest.cpp	(revision c38826b3bf15f17943193456d55be73246628ebd)
@@ -7,5 +7,5 @@
 
 /*
- * InfoUnitTest.cpp
+ * MenuDescriptionUnitTest.cpp
  *
  *  Created on: Nov 25, 2009
@@ -45,7 +45,8 @@
 };
 
-/** UnitTest for SensibilityTest().
+/** UnitTest for consistency.
+ * we check that we have the same keys in each of MenuSet, MenuDescription and MenuNameMap.
  */
-void MenuDescriptionTest::SensibilityTest()
+void MenuDescriptionTest::ConsistencyCheck()
 {
   // from MenuSet
@@ -63,5 +64,5 @@
   // from MenuNameMap
   for(std::map<std::string, std::string>::const_iterator iter = md.MenuNameMap.begin(); iter != md.MenuNameMap.end(); ++iter) {
-    CPPUNIT_ASSERT_MESSAGE( "menu token not contained in MenuDescription::MenuDewscriptionsMap", md.MenuDescriptionsMap.find(iter->first) != md.MenuDescriptionsMap.end());
+    CPPUNIT_ASSERT_MESSAGE( "menu token not contained in MenuDescription::MenuDescriptionsMap", md.MenuDescriptionsMap.find(iter->first) != md.MenuDescriptionsMap.end());
     CPPUNIT_ASSERT_MESSAGE( "menu token not contained in MenuDescription::MenuSet", md.MenuSet.find(iter->first) != md.MenuSet.end());
   }
Index: src/unittests/MenuDescriptionUnitTest.hpp
===================================================================
--- src/unittests/MenuDescriptionUnitTest.hpp	(revision 8bcf3f12b38ffa3e7252dadca491edacb57f7d05)
+++ src/unittests/MenuDescriptionUnitTest.hpp	(revision c38826b3bf15f17943193456d55be73246628ebd)
@@ -1,4 +1,4 @@
 /*
- * InfoUnitTest.hpp
+ * MenuDescriptionUnitTest.cpp.hpp
  *
  *  Created on: Nov 25, 2009
@@ -6,6 +6,6 @@
  */
 
-#ifndef INFOUNITTEST_HPP_
-#define INFOUNITTEST_HPP_
+#ifndef MENUDESCRIPTORUNITTEST_HPP_
+#define MENUDESCRIPTORUNITTEST_HPP_
 
 #include <cppunit/extensions/HelperMacros.h>
@@ -18,5 +18,5 @@
 {
     CPPUNIT_TEST_SUITE( MenuDescriptionTest) ;
-    CPPUNIT_TEST ( SensibilityTest );
+    CPPUNIT_TEST ( ConsistencyCheck );
     CPPUNIT_TEST_SUITE_END();
 
@@ -24,5 +24,5 @@
       void setUp();
       void tearDown();
-      void SensibilityTest();
+      void ConsistencyCheck();
 
 private:
@@ -30,3 +30,3 @@
 };
 
-#endif /* INFOUNITTEST_HPP_ */
+#endif /* MENUDESCRIPTORUNITTEST_HPP_ */
Index: src/unittests/RegistryUnitTest.cpp
===================================================================
--- src/unittests/RegistryUnitTest.cpp	(revision c38826b3bf15f17943193456d55be73246628ebd)
+++ src/unittests/RegistryUnitTest.cpp	(revision c38826b3bf15f17943193456d55be73246628ebd)
@@ -0,0 +1,52 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2010 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * RegistryUnitTest.cpp
+ *
+ *  Created on: Oct 27, 2010
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/ui/text/TestRunner.h>
+
+#include "RegistryUnitTest.hpp"
+
+#include <typeinfo>
+
+#include "Actions/ActionRegistry.hpp"
+#include "Actions/ActionTraits.hpp"
+#include "Actions/OptionRegistry.hpp"
+
+#ifdef HAVE_TESTRUNNER
+#include "UnitTestMain.hpp"
+#endif /*HAVE_TESTRUNNER*/
+
+/********************************************** Test classes **************************************/
+
+// Registers the fixture into the 'registry'
+CPPUNIT_TEST_SUITE_REGISTRATION( RegistryTest );
+
+
+void RegistryTest::setUp()
+{};
+
+
+void RegistryTest::tearDown()
+{};
+
+void RegistryTest::InOutCheck()
+{
+  CPPUNIT_ASSERT(true);
+}
Index: src/unittests/RegistryUnitTest.hpp
===================================================================
--- src/unittests/RegistryUnitTest.hpp	(revision c38826b3bf15f17943193456d55be73246628ebd)
+++ src/unittests/RegistryUnitTest.hpp	(revision c38826b3bf15f17943193456d55be73246628ebd)
@@ -0,0 +1,30 @@
+/*
+ * RegistryUnitTest.hpp
+ *
+ *  Created on: Oct 27, 2010
+ *      Author: heber
+ */
+
+#ifndef REGISTRYUNITTEST_HPP_
+#define REGISTRYUNITTEST_HPP_
+
+#include <cppunit/extensions/HelperMacros.h>
+
+
+/********************************************** Test classes **************************************/
+
+class RegistryTest : public CppUnit::TestFixture
+{
+    CPPUNIT_TEST_SUITE( RegistryTest) ;
+    CPPUNIT_TEST ( InOutCheck );
+    CPPUNIT_TEST_SUITE_END();
+
+public:
+      void setUp();
+      void tearDown();
+      void InOutCheck();
+
+private:
+};
+
+#endif /* REGISTRYUNITTEST_HPP_ */
Index: src/unittests/atomsCalculationTest.cpp
===================================================================
--- src/unittests/atomsCalculationTest.cpp	(revision 8bcf3f12b38ffa3e7252dadca491edacb57f7d05)
+++ src/unittests/atomsCalculationTest.cpp	(revision c38826b3bf15f17943193456d55be73246628ebd)
@@ -31,4 +31,5 @@
 #include "Actions/AtomsCalculation_impl.hpp"
 #include "Actions/ActionRegistry.hpp"
+#include "Actions/ActionTraits.hpp"
 
 #include "World.hpp"
@@ -88,5 +89,6 @@
 
 void atomsCalculationTest::testCalculateSimple(){
-  AtomsCalculation<atomId_t> *calc = World::getInstance().calcOnAtoms<atomId_t>(boost::bind(&atom::getId,_1),"FOO",AllAtoms());
+  ActionTraits FooTrait("FOO");
+  AtomsCalculation<atomId_t> *calc = World::getInstance().calcOnAtoms<atomId_t>(boost::bind(&atom::getId,_1),FooTrait,AllAtoms());
   std::vector<atomId_t> allIds = (*calc)();
   CPPUNIT_ASSERT(hasAllIds(allIds,atomIds));
@@ -95,6 +97,7 @@
 
 void atomsCalculationTest::testCalculateExcluded(){
+  ActionTraits FooTrait("FOO");
   atomId_t excluded = atomIds[ATOM_COUNT/2];
-  AtomsCalculation<atomId_t> *calc = World::getInstance().calcOnAtoms<atomId_t>(boost::bind(&atom::getId,_1),"FOO",AllAtoms() && !AtomById(excluded));
+  AtomsCalculation<atomId_t> *calc = World::getInstance().calcOnAtoms<atomId_t>(boost::bind(&atom::getId,_1),FooTrait,AllAtoms() && !AtomById(excluded));
   std::vector<atomId_t> allIds = (*calc)();
   std::set<atomId_t> excluded_set;
