Index: src/Actions/Makefile.am
===================================================================
--- src/Actions/Makefile.am	(revision bf4b9ff97113f58a6031de8f9e67813336ae63f1)
+++ src/Actions/Makefile.am	(revision 4555736a848291ba2a2394892fd02081032c5861)
@@ -2,10 +2,39 @@
 # Also indentation by a single tab
 
-INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/LinearAlgebra/src
-
-AM_LDFLAGS = -ldl
-AM_CPPFLAGS = ${BOOST_CPPFLAGS} ${CodePatterns_CFLAGS}
-
 ACTIONSSOURCE = \
+  Actions/Action.cpp \
+  Actions/ActionHistory.cpp \
+  Actions/ActionRegistry.cpp \
+  Actions/ActionSequence.cpp \
+  Actions/ActionTraits.cpp \
+  Actions/ErrorAction.cpp \
+  Actions/MakroAction.cpp \
+  Actions/ManipulateAtomsProcess.cpp \
+  Actions/MethodAction.cpp \
+	Actions/OptionRegistry.cpp \
+	Actions/OptionTrait.cpp \
+  Actions/Process.cpp \
+  Actions/Values.cpp \
+  Actions/ValueStorage.cpp
+
+ACTIONSHEADER = \
+  Actions/Action.hpp \
+  Actions/ActionHistory.hpp \
+  Actions/ActionRegistry.hpp \
+  Actions/ActionSequence.hpp \
+  Actions/ActionTraits.hpp \
+  Actions/Calculation.hpp \
+  Actions/Calculation_impl.hpp \
+  Actions/ErrorAction.hpp \
+  Actions/MakroAction.hpp \
+  Actions/ManipulateAtomsProcess.hpp \
+  Actions/MethodAction.hpp \
+	Actions/OptionRegistry.hpp \
+	Actions/OptionTrait.hpp \
+  Actions/Process.hpp \
+  Actions/Values.hpp \
+ 	Actions/ValueStorage.hpp
+  
+ACTIONPROTOTYPESSOURCE = \
   ${ANALYSISACTIONSOURCE} \
   ${ATOMACTIONSOURCE} \
@@ -19,11 +48,8 @@
   ${SELECTIONMOLECULEACTIONSOURCE} \
   ${TESSELATIONACTIONSOURCE} \
-  ${WORLDACTIONSOURCE} \
-  RedoAction.cpp \
-  UndoAction.cpp \
-  Values.cpp \
-  ValueStorage.cpp
-
-ACTIONSHEADER = \
+  $(UNDOACTIONSOURCE) \
+  ${WORLDACTIONSOURCE}
+
+ACTIONPROTOTYPESHEADER = \
   ${ANALYSISACTIONHEADER} \
   ${ATOMACTIONHEADER} \
@@ -37,218 +63,225 @@
   ${SELECTIONMOLECULEACTIONHEADER} \
   ${TESSELATIONACTIONHEADER} \
-  ${WORLDACTIONHEADER} \
-  Values.hpp \
-  ValueStorage.hpp
-  
+  $(UNDOACTIONHEADER) \
+  ${WORLDACTIONHEADER}
+
 ANALYSISACTIONSOURCE = \
-  AnalysisAction/DipoleAngularCorrelationAction.cpp \
-  AnalysisAction/MolecularVolumeAction.cpp \
-  AnalysisAction/PairCorrelationAction.cpp \
-  AnalysisAction/PointCorrelationAction.cpp \
-  AnalysisAction/PrincipalAxisSystemAction.cpp \
-  AnalysisAction/SurfaceCorrelationAction.cpp
+  Actions/AnalysisAction/DipoleAngularCorrelationAction.cpp \
+  Actions/AnalysisAction/MolecularVolumeAction.cpp \
+  Actions/AnalysisAction/PairCorrelationAction.cpp \
+  Actions/AnalysisAction/PointCorrelationAction.cpp \
+  Actions/AnalysisAction/PrincipalAxisSystemAction.cpp \
+  Actions/AnalysisAction/SurfaceCorrelationAction.cpp
 ANALYSISACTIONHEADER = \
-  AnalysisAction/DipoleAngularCorrelationAction.hpp \
-  AnalysisAction/MolecularVolumeAction.hpp \
-  AnalysisAction/PairCorrelationAction.hpp \
-  AnalysisAction/PointCorrelationAction.hpp \
-  AnalysisAction/PrincipalAxisSystemAction.hpp \
-  AnalysisAction/SurfaceCorrelationAction.hpp
+  Actions/AnalysisAction/DipoleAngularCorrelationAction.hpp \
+  Actions/AnalysisAction/MolecularVolumeAction.hpp \
+  Actions/AnalysisAction/PairCorrelationAction.hpp \
+  Actions/AnalysisAction/PointCorrelationAction.hpp \
+  Actions/AnalysisAction/PrincipalAxisSystemAction.hpp \
+  Actions/AnalysisAction/SurfaceCorrelationAction.hpp
 
 ATOMACTIONSOURCE = \
-  AtomAction/AddAction.cpp \
-  AtomAction/ChangeElementAction.cpp \
-  AtomAction/RemoveAction.cpp \
-  AtomAction/RotateAroundOriginByAngleAction.cpp \
-  AtomAction/SaveSelectedAtomsAction.cpp \
-  AtomAction/TranslateAction.cpp
+  Actions/AtomAction/AddAction.cpp \
+  Actions/AtomAction/ChangeElementAction.cpp \
+  Actions/AtomAction/RemoveAction.cpp \
+  Actions/AtomAction/RotateAroundOriginByAngleAction.cpp \
+  Actions/AtomAction/SaveSelectedAtomsAction.cpp \
+  Actions/AtomAction/TranslateAction.cpp
 ATOMACTIONHEADER = \
-  AtomAction/AddAction.hpp \
-  AtomAction/ChangeElementAction.hpp \
-  AtomAction/RemoveAction.cpp \
-  AtomAction/RotateAroundOriginByAngleAction.hpp \
-  AtomAction/SaveSelectedAtomsAction.hpp \
-  AtomAction/TranslateAction.hpp
+  Actions/AtomAction/AddAction.hpp \
+  Actions/AtomAction/ChangeElementAction.hpp \
+  Actions/AtomAction/RemoveAction.cpp \
+  Actions/AtomAction/RotateAroundOriginByAngleAction.hpp \
+  Actions/AtomAction/SaveSelectedAtomsAction.hpp \
+  Actions/AtomAction/TranslateAction.hpp
 
 CMDACTIONSOURCE = \
-  CommandAction/BondLengthTableAction.cpp \
-  CommandAction/ElementDbAction.cpp \
-  CommandAction/FastParsingAction.cpp \
-  CommandAction/HelpAction.cpp \
-  CommandAction/VerboseAction.cpp \
-  CommandAction/VersionAction.cpp \
-  CommandAction/WarrantyAction.cpp
+  Actions/CommandAction/BondLengthTableAction.cpp \
+  Actions/CommandAction/ElementDbAction.cpp \
+  Actions/CommandAction/FastParsingAction.cpp \
+  Actions/CommandAction/HelpAction.cpp \
+  Actions/CommandAction/VerboseAction.cpp \
+  Actions/CommandAction/VersionAction.cpp \
+  Actions/CommandAction/WarrantyAction.cpp
 CMDACTIONHEADER = \
-  CommandAction/BondLengthTableAction.hpp \
-  CommandAction/ElementDbAction.hpp \
-  CommandAction/FastParsingAction.hpp \
-  CommandAction/HelpAction.hpp \
-  CommandAction/VerboseAction.hpp \
-  CommandAction/VersionAction.hpp \
-  CommandAction/WarrantyAction.hpp
+  Actions/CommandAction/BondLengthTableAction.hpp \
+  Actions/CommandAction/ElementDbAction.hpp \
+  Actions/CommandAction/FastParsingAction.hpp \
+  Actions/CommandAction/HelpAction.hpp \
+  Actions/CommandAction/VerboseAction.hpp \
+  Actions/CommandAction/VersionAction.hpp \
+  Actions/CommandAction/WarrantyAction.hpp
 
 FRAGMENTATIONACTIONSOURCE = \
-  FragmentationAction/FragmentationAction.cpp
+  Actions/FragmentationAction/FragmentationAction.cpp
 FRAGMENTATIONACTIONHEADER = \
-  FragmentationAction/FragmentationAction.hpp
+  Actions/FragmentationAction/FragmentationAction.hpp
 
 GRAPHACTIONSOURCE = \
-  GraphAction/CreateAdjacencyAction.cpp \
-  GraphAction/DepthFirstSearchAction.cpp \
-  GraphAction/SubgraphDissectionAction.cpp
+  Actions/GraphAction/CreateAdjacencyAction.cpp \
+  Actions/GraphAction/DepthFirstSearchAction.cpp \
+  Actions/GraphAction/SubgraphDissectionAction.cpp
 GRAPHACTIONHEADER = \
-  GraphAction/CreateAdjacencyAction.hpp \
-  GraphAction/DepthFirstSearchAction.hpp \
-  GraphAction/SubgraphDissectionAction.hpp
+  Actions/GraphAction/CreateAdjacencyAction.hpp \
+  Actions/GraphAction/DepthFirstSearchAction.hpp \
+  Actions/GraphAction/SubgraphDissectionAction.hpp
 
 MOLECULEACTIONSOURCE = \
-  MoleculeAction/BondFileAction.cpp \
-  MoleculeAction/ChangeNameAction.cpp \
-  MoleculeAction/CopyAction.cpp \
-  MoleculeAction/FillWithMoleculeAction.cpp \
-  MoleculeAction/FillVoidWithMoleculeAction.cpp \
-  MoleculeAction/LinearInterpolationofTrajectoriesAction.cpp \
-  MoleculeAction/LoadAction.cpp \
-  MoleculeAction/RotateAroundSelfByAngleAction.cpp \
-  MoleculeAction/RotateToPrincipalAxisSystemAction.cpp \
-  MoleculeAction/SaveSelectedMoleculesAction.cpp \
-  MoleculeAction/SaveAdjacencyAction.cpp \
-  MoleculeAction/SaveBondsAction.cpp \
-  MoleculeAction/SaveTemperatureAction.cpp \
-  MoleculeAction/SuspendInWaterAction.cpp \
-  MoleculeAction/VerletIntegrationAction.cpp
+  Actions/MoleculeAction/BondFileAction.cpp \
+  Actions/MoleculeAction/ChangeNameAction.cpp \
+  Actions/MoleculeAction/CopyAction.cpp \
+  Actions/MoleculeAction/FillWithMoleculeAction.cpp \
+  Actions/MoleculeAction/FillVoidWithMoleculeAction.cpp \
+  Actions/MoleculeAction/LinearInterpolationofTrajectoriesAction.cpp \
+  Actions/MoleculeAction/LoadAction.cpp \
+  Actions/MoleculeAction/RotateAroundSelfByAngleAction.cpp \
+  Actions/MoleculeAction/RotateToPrincipalAxisSystemAction.cpp \
+  Actions/MoleculeAction/SaveSelectedMoleculesAction.cpp \
+  Actions/MoleculeAction/SaveAdjacencyAction.cpp \
+  Actions/MoleculeAction/SaveBondsAction.cpp \
+  Actions/MoleculeAction/SaveTemperatureAction.cpp \
+  Actions/MoleculeAction/SuspendInWaterAction.cpp \
+  Actions/MoleculeAction/VerletIntegrationAction.cpp
 MOLECULEACTIONHEADER = \
-  MoleculeAction/BondFileAction.hpp \
-  MoleculeAction/ChangeNameAction.hpp \
-  MoleculeAction/CopyAction.hpp \
-  MoleculeAction/FillWithMoleculeAction.hpp \
-  MoleculeAction/FillVoidWithMoleculeAction.hpp \
-  MoleculeAction/LinearInterpolationofTrajectoriesAction.hpp \
-  MoleculeAction/LoadAction.cpp \
-  MoleculeAction/RotateAroundSelfByAngleAction.hpp \
-  MoleculeAction/RotateToPrincipalAxisSystemAction.hpp \
-  MoleculeAction/SaveSelectedMoleculesAction.hpp \
-  MoleculeAction/SaveAdjacencyAction.hpp \
-  MoleculeAction/SaveBondsAction.hpp \
-  MoleculeAction/SaveTemperatureAction.hpp \
-  MoleculeAction/SuspendInWaterAction.hpp \
-  MoleculeAction/VerletIntegrationAction.hpp
+  Actions/MoleculeAction/BondFileAction.hpp \
+  Actions/MoleculeAction/ChangeNameAction.hpp \
+  Actions/MoleculeAction/CopyAction.hpp \
+  Actions/MoleculeAction/FillWithMoleculeAction.hpp \
+  Actions/MoleculeAction/FillVoidWithMoleculeAction.hpp \
+  Actions/MoleculeAction/LinearInterpolationofTrajectoriesAction.hpp \
+  Actions/MoleculeAction/LoadAction.cpp \
+  Actions/MoleculeAction/RotateAroundSelfByAngleAction.hpp \
+  Actions/MoleculeAction/RotateToPrincipalAxisSystemAction.hpp \
+  Actions/MoleculeAction/SaveSelectedMoleculesAction.hpp \
+  Actions/MoleculeAction/SaveAdjacencyAction.hpp \
+  Actions/MoleculeAction/SaveBondsAction.hpp \
+  Actions/MoleculeAction/SaveTemperatureAction.hpp \
+  Actions/MoleculeAction/SuspendInWaterAction.hpp \
+  Actions/MoleculeAction/VerletIntegrationAction.hpp
 
 PARSERACTIONSOURCE = \
-  ParserAction/ParseTremoloPotentialsAction.cpp \
-  ParserAction/SetMpqcParametersAction.cpp \
-  ParserAction/SetOutputFormatsAction.cpp
+  Actions/ParserAction/ParseTremoloPotentialsAction.cpp \
+  Actions/ParserAction/SetMpqcParametersAction.cpp \
+  Actions/ParserAction/SetOutputFormatsAction.cpp
 PARSERACTIONHEADER = \
-  ParserAction/ParseTremoloPotentialsAction.hpp \
-  ParserAction/SetMpqcParametersAction.hpp \
-  ParserAction/SetOutputFormatsAction.hpp               
+  Actions/ParserAction/ParseTremoloPotentialsAction.hpp \
+  Actions/ParserAction/SetMpqcParametersAction.hpp \
+  Actions/ParserAction/SetOutputFormatsAction.hpp               
 
 RANDONNUMBERSSOURCE =\
-	RandomNumbersAction/SetRandomNumbersDistributionAction.cpp \
-	RandomNumbersAction/SetRandomNumbersEngineAction.cpp
+	Actions/RandomNumbersAction/SetRandomNumbersDistributionAction.cpp \
+	Actions/RandomNumbersAction/SetRandomNumbersEngineAction.cpp
 RANDONNUMBERSHEADER =\
-	RandomNumbersAction/SetRandomNumbersDistributionAction.hpp \
-	RandomNumbersAction/SetRandomNumbersEngineAction.hpp
+	Actions/RandomNumbersAction/SetRandomNumbersDistributionAction.hpp \
+	Actions/RandomNumbersAction/SetRandomNumbersEngineAction.hpp
                  
 SELECTIONATOMACTIONSOURCE = \
-	SelectionAction/Atoms/AllAtomsAction.cpp \
-	SelectionAction/Atoms/AllAtomsInsideCuboidAction.cpp \
-	SelectionAction/Atoms/AllAtomsInsideSphereAction.cpp \
-	SelectionAction/Atoms/AllAtomsOfMoleculeAction.cpp \
-	SelectionAction/Atoms/AtomByElementAction.cpp \
-	SelectionAction/Atoms/AtomByIdAction.cpp \
-	SelectionAction/Atoms/ClearAllAtomsAction.cpp \
-	SelectionAction/Atoms/NotAllAtomsAction.cpp \
-	SelectionAction/Atoms/NotAllAtomsInsideCuboidAction.cpp \
-	SelectionAction/Atoms/NotAllAtomsInsideSphereAction.cpp \
-	SelectionAction/Atoms/NotAllAtomsOfMoleculeAction.cpp \
-	SelectionAction/Atoms/NotAtomByElementAction.cpp \
-	SelectionAction/Atoms/NotAtomByIdAction.cpp
+	Actions/SelectionAction/Atoms/AllAtomsAction.cpp \
+	Actions/SelectionAction/Atoms/AllAtomsInsideCuboidAction.cpp \
+	Actions/SelectionAction/Atoms/AllAtomsInsideSphereAction.cpp \
+	Actions/SelectionAction/Atoms/AllAtomsOfMoleculeAction.cpp \
+	Actions/SelectionAction/Atoms/AtomByElementAction.cpp \
+	Actions/SelectionAction/Atoms/AtomByIdAction.cpp \
+	Actions/SelectionAction/Atoms/ClearAllAtomsAction.cpp \
+	Actions/SelectionAction/Atoms/NotAllAtomsAction.cpp \
+	Actions/SelectionAction/Atoms/NotAllAtomsInsideCuboidAction.cpp \
+	Actions/SelectionAction/Atoms/NotAllAtomsInsideSphereAction.cpp \
+	Actions/SelectionAction/Atoms/NotAllAtomsOfMoleculeAction.cpp \
+	Actions/SelectionAction/Atoms/NotAtomByElementAction.cpp \
+	Actions/SelectionAction/Atoms/NotAtomByIdAction.cpp
 SELECTIONATOMACTIONHEADER = \
-	SelectionAction/Atoms/AllAtomsAction.hpp \
-	SelectionAction/Atoms/AllAtomsInsideCuboidAction.hpp \
-	SelectionAction/Atoms/AllAtomsInsideSphereAction.hpp \
-	SelectionAction/Atoms/AllAtomsOfMoleculeAction.hpp \
-	SelectionAction/Atoms/AtomByElementAction.hpp \
-	SelectionAction/Atoms/AtomByIdAction.hpp \
-	SelectionAction/Atoms/ClearAllAtomsAction.hpp \
-	SelectionAction/Atoms/NotAllAtomsAction.hpp \
-	SelectionAction/Atoms/NotAllAtomsInsideCuboidAction.hpp \
-	SelectionAction/Atoms/NotAllAtomsInsideSphereAction.hpp \
-	SelectionAction/Atoms/NotAllAtomsOfMoleculeAction.hpp \
-	SelectionAction/Atoms/NotAtomByElementAction.hpp \
-	SelectionAction/Atoms/NotAtomByIdAction.hpp
+	Actions/SelectionAction/Atoms/AllAtomsAction.hpp \
+	Actions/SelectionAction/Atoms/AllAtomsInsideCuboidAction.hpp \
+	Actions/SelectionAction/Atoms/AllAtomsInsideSphereAction.hpp \
+	Actions/SelectionAction/Atoms/AllAtomsOfMoleculeAction.hpp \
+	Actions/SelectionAction/Atoms/AtomByElementAction.hpp \
+	Actions/SelectionAction/Atoms/AtomByIdAction.hpp \
+	Actions/SelectionAction/Atoms/ClearAllAtomsAction.hpp \
+	Actions/SelectionAction/Atoms/NotAllAtomsAction.hpp \
+	Actions/SelectionAction/Atoms/NotAllAtomsInsideCuboidAction.hpp \
+	Actions/SelectionAction/Atoms/NotAllAtomsInsideSphereAction.hpp \
+	Actions/SelectionAction/Atoms/NotAllAtomsOfMoleculeAction.hpp \
+	Actions/SelectionAction/Atoms/NotAtomByElementAction.hpp \
+	Actions/SelectionAction/Atoms/NotAtomByIdAction.hpp
 
 SELECTIONMOLECULEACTIONSOURCE = \
-	SelectionAction/Molecules/AllMoleculesAction.cpp \
-	SelectionAction/Molecules/ClearAllMoleculesAction.cpp \
-	SelectionAction/Molecules/MoleculeByFormulaAction.cpp \
-	SelectionAction/Molecules/MoleculeByIdAction.cpp \
-	SelectionAction/Molecules/MoleculeByNameAction.cpp \
-	SelectionAction/Molecules/MoleculeByOrderAction.cpp \
-	SelectionAction/Molecules/MoleculeOfAtomAction.cpp \
-	SelectionAction/Molecules/NotAllMoleculesAction.cpp \
-	SelectionAction/Molecules/NotMoleculeByFormulaAction.cpp \
-	SelectionAction/Molecules/NotMoleculeByIdAction.cpp \
-	SelectionAction/Molecules/NotMoleculeByNameAction.cpp \
-	SelectionAction/Molecules/NotMoleculeByOrderAction.cpp \
-	SelectionAction/Molecules/NotMoleculeOfAtomAction.cpp
+	Actions/SelectionAction/Molecules/AllMoleculesAction.cpp \
+	Actions/SelectionAction/Molecules/ClearAllMoleculesAction.cpp \
+	Actions/SelectionAction/Molecules/MoleculeByFormulaAction.cpp \
+	Actions/SelectionAction/Molecules/MoleculeByIdAction.cpp \
+	Actions/SelectionAction/Molecules/MoleculeByNameAction.cpp \
+	Actions/SelectionAction/Molecules/MoleculeByOrderAction.cpp \
+	Actions/SelectionAction/Molecules/MoleculeOfAtomAction.cpp \
+	Actions/SelectionAction/Molecules/NotAllMoleculesAction.cpp \
+	Actions/SelectionAction/Molecules/NotMoleculeByFormulaAction.cpp \
+	Actions/SelectionAction/Molecules/NotMoleculeByIdAction.cpp \
+	Actions/SelectionAction/Molecules/NotMoleculeByNameAction.cpp \
+	Actions/SelectionAction/Molecules/NotMoleculeByOrderAction.cpp \
+	Actions/SelectionAction/Molecules/NotMoleculeOfAtomAction.cpp
 SELECTIONMOLECULEACTIONHEADER = \
-	SelectionAction/Molecules/AllMoleculesAction.hpp \
-	SelectionAction/Molecules/ClearAllMoleculesAction.hpp \
-	SelectionAction/Molecules/MoleculeByFormulaAction.hpp \
-	SelectionAction/Molecules/MoleculeByIdAction.hpp \
-	SelectionAction/Molecules/MoleculeByNameAction.hpp \
-	SelectionAction/Molecules/MoleculeByOrderAction.hpp \
-	SelectionAction/Molecules/MoleculeOfAtomAction.hpp \
-	SelectionAction/Molecules/NotAllMoleculesAction.hpp \
-	SelectionAction/Molecules/NotMoleculeByFormulaAction.hpp \
-	SelectionAction/Molecules/NotMoleculeByIdAction.hpp \
-	SelectionAction/Molecules/NotMoleculeByNameAction.hpp \
-	SelectionAction/Molecules/NotMoleculeByOrderAction.hpp \
-	SelectionAction/Molecules/NotMoleculeOfAtomAction.hpp
+	Actions/SelectionAction/Molecules/AllMoleculesAction.hpp \
+	Actions/SelectionAction/Molecules/ClearAllMoleculesAction.hpp \
+	Actions/SelectionAction/Molecules/MoleculeByFormulaAction.hpp \
+	Actions/SelectionAction/Molecules/MoleculeByIdAction.hpp \
+	Actions/SelectionAction/Molecules/MoleculeByNameAction.hpp \
+	Actions/SelectionAction/Molecules/MoleculeByOrderAction.hpp \
+	Actions/SelectionAction/Molecules/MoleculeOfAtomAction.hpp \
+	Actions/SelectionAction/Molecules/NotAllMoleculesAction.hpp \
+	Actions/SelectionAction/Molecules/NotMoleculeByFormulaAction.hpp \
+	Actions/SelectionAction/Molecules/NotMoleculeByIdAction.hpp \
+	Actions/SelectionAction/Molecules/NotMoleculeByNameAction.hpp \
+	Actions/SelectionAction/Molecules/NotMoleculeByOrderAction.hpp \
+	Actions/SelectionAction/Molecules/NotMoleculeOfAtomAction.hpp
 	
 TESSELATIONACTIONSOURCE = \
-  TesselationAction/ConvexEnvelopeAction.cpp \
-  TesselationAction/NonConvexEnvelopeAction.cpp               
+  Actions/TesselationAction/ConvexEnvelopeAction.cpp \
+  Actions/TesselationAction/NonConvexEnvelopeAction.cpp               
 TESSELATIONACTIONHEADER = \
-  TesselationAction/ConvexEnvelopeAction.hpp \
-  TesselationAction/NonConvexEnvelopeAction.hpp
+  Actions/TesselationAction/ConvexEnvelopeAction.hpp \
+  Actions/TesselationAction/NonConvexEnvelopeAction.hpp
+
+UNDOACTIONSOURCE = \
+  Actions/RedoAction.cpp \
+  Actions/UndoAction.cpp 
+UNDOACTIONHEADER = \
+  Actions/RedoAction.hpp \
+  Actions/UndoAction.hpp
+
 
 WORLDACTIONSOURCE = \
-  WorldAction/AddEmptyBoundaryAction.cpp \
-  WorldAction/BoundInBoxAction.cpp \
-  WorldAction/CenterInBoxAction.cpp \
-  WorldAction/CenterOnEdgeAction.cpp \
-  WorldAction/ChangeBoxAction.cpp \
-  WorldAction/InputAction.cpp \
-  WorldAction/OutputAction.cpp \
-  WorldAction/RepeatBoxAction.cpp \
-  WorldAction/ScaleBoxAction.cpp \
-  WorldAction/SetDefaultNameAction.cpp \
-  WorldAction/SetWorldTimeAction.cpp
+  Actions/WorldAction/AddEmptyBoundaryAction.cpp \
+  Actions/WorldAction/BoundInBoxAction.cpp \
+  Actions/WorldAction/CenterInBoxAction.cpp \
+  Actions/WorldAction/CenterOnEdgeAction.cpp \
+  Actions/WorldAction/ChangeBoxAction.cpp \
+  Actions/WorldAction/InputAction.cpp \
+  Actions/WorldAction/OutputAction.cpp \
+  Actions/WorldAction/RepeatBoxAction.cpp \
+  Actions/WorldAction/ScaleBoxAction.cpp \
+  Actions/WorldAction/SetDefaultNameAction.cpp \
+  Actions/WorldAction/SetWorldTimeAction.cpp
 WORLDACTIONHEADER = \
-  WorldAction/AddEmptyBoundaryAction.hpp \
-  WorldAction/BoundInBoxAction.hpp \
-  WorldAction/CenterInBoxAction.hpp \
-  WorldAction/CenterOnEdgeAction.hpp \
-  WorldAction/ChangeBoxAction.hpp \
-  WorldAction/InputAction.hpp \
-  WorldAction/OutputAction.hpp \
-  WorldAction/RepeatBoxAction.hpp \
-  WorldAction/ScaleBoxAction.hpp \
-  WorldAction/SetDefaultNameAction.hpp \
-  WorldAction/SetWorldTimeAction.hpp
-
-
-lib_LTLIBRARIES = libMolecuilderActions.la
+  Actions/WorldAction/AddEmptyBoundaryAction.hpp \
+  Actions/WorldAction/BoundInBoxAction.hpp \
+  Actions/WorldAction/CenterInBoxAction.hpp \
+  Actions/WorldAction/CenterOnEdgeAction.hpp \
+  Actions/WorldAction/ChangeBoxAction.hpp \
+  Actions/WorldAction/InputAction.hpp \
+  Actions/WorldAction/OutputAction.hpp \
+  Actions/WorldAction/RepeatBoxAction.hpp \
+  Actions/WorldAction/ScaleBoxAction.hpp \
+  Actions/WorldAction/SetDefaultNameAction.hpp \
+  Actions/WorldAction/SetWorldTimeAction.hpp
+
+
+noinst_LTLIBRARIES += \
+	libMolecuilderActions.la \
+	libMolecuilderActionPrototypes.la
 libMolecuilderActions_la_includedir = $(includedir)/MoleCuilder/Actions/
-libMolecuilderActions_la_LIBADD = \
-	../Parser/libMolecuilderParser.la \
-	../Shapes/libMolecuilderShapes.la \
-	../Graph/libMolecuilderGraph.la \
-	${CodePatterns_LIBS}
-#	../UIElements/libMolecuilderUI.la
+libMolecuilderActionPrototypes_la_includedir = $(includedir)/MoleCuilder/Actions/
+
+#	UIElements/libMolecuilderUI.la
 nobase_libMolecuilderActions_la_include_HEADERS = ${ACTIONSHEADER}
+nobase_libMolecuilderActionPrototypes_la_include_HEADERS = ${ACTIONPROTOTYPESHEADER}
 
 ## Define the source file list for the "libexample-@MOLECUILDER_API_VERSION@.la"
@@ -261,9 +294,10 @@
 ## which are already listed elsewhere in a _HEADERS variable assignment.
 libMolecuilderActions_la_SOURCES = ${ACTIONSSOURCE}
+libMolecuilderActionPrototypes_la_SOURCES = ${ACTIONPROTOTYPESSOURCE}
 
 ## Instruct libtool to include ABI version information in the generated shared
 ## library file (.so).  The library ABI version is defined in configure.ac, so
 ## that all version information is kept in one place.
-libMolecuilderActions_la_LDFLAGS = -version-info $(MOLECUILDER_SO_VERSION)
+#libMolecuilderActions_la_LDFLAGS = -version-info $(MOLECUILDER_SO_VERSION)
 
 ## The generated configuration header is installed in its own subdirectory of
@@ -287,10 +321,2 @@
 #pkgconfigdir = $(libdir)/pkgconfig
 #pkgconfig_DATA = $(top_builddir)/MoleCuilder.pc
-
-unity.cpp:
-	echo "" >  unity.cpp; \
-	list='$(ACTIONSSOURCE)'; for file in $$list; do \
-	  echo "#include \"$(srcdir)/$$file\"" >> unity.cpp; \
-	done;
-	
-MOSTLYCLEANFILES = unity.cpp
Index: src/Actions/unittests/ActionRegistryUnitTest.cpp
===================================================================
--- src/Actions/unittests/ActionRegistryUnitTest.cpp	(revision bf4b9ff97113f58a6031de8f9e67813336ae63f1)
+++ src/Actions/unittests/ActionRegistryUnitTest.cpp	(revision 4555736a848291ba2a2394892fd02081032c5861)
@@ -53,5 +53,5 @@
 
   ActionRegistry &AR = ActionRegistry::getInstance();
-  for (ActionRegistry::const_iterator iter = AR.getBeginIter(); iter != AR.getEndIter(); ++iter)
+  for (ActionRegistry::const_iterator iter = AR.getBeginIter(); iter != AR.getEndIter(); ++iter) {
     if ((iter->second)->Traits.hasShortForm()) {
       ASSERT(result.find((iter->second)->Traits.getShortForm()) == result.end(),
@@ -61,3 +61,4 @@
       result[(iter->second)->Traits.getShortForm()] = (iter->second)->getName();
     }
+  }
 }
Index: src/Actions/unittests/Makefile.am
===================================================================
--- src/Actions/unittests/Makefile.am	(revision bf4b9ff97113f58a6031de8f9e67813336ae63f1)
+++ src/Actions/unittests/Makefile.am	(revision 4555736a848291ba2a2394892fd02081032c5861)
@@ -2,10 +2,17 @@
 # Also indentation by a single tab
 
-INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/LinearAlgebra/src
+ACTIONTESTSSOURCES = \
+	../Actions/unittests/ActionRegistryUnitTest.cpp \
+	../Actions/unittests/ActionSequenceUnitTest.cpp \
+	../Actions/unittests/AtomsCalculationUnitTest.cpp \
+	../Actions/unittests/ManipulateAtomsUnitTest.cpp
 
-AM_LDFLAGS = ${CodePatterns_LIBS} $(CPPUNIT_LIBS) -ldl
-AM_CPPFLAGS = ${BOOST_CPPFLAGS} $(CPPUNIT_CFLAGS) ${CodePatterns_CFLAGS}
+ACTIONTESTSHEADERS = \
+	../Actions/unittests/ActionRegistryUnitTest.hpp \
+	../Actions/unittests/ActionSequenceUnitTest.hpp \
+	../Actions/unittests/AtomsCalculationUnitTest.hpp \
+	../Actions/unittests/ManipulateAtomsUnitTest.hpp
 
-TESTS = \
+ACTIONTESTS = \
   ActionRegistryUnitTest \
   ActionSequenceUnitTest \
@@ -13,44 +20,30 @@
   ManipulateAtomsUnitTest
 
-check_PROGRAMS = $(TESTS) 
-noinst_PROGRAMS = $(TESTS)
+TESTS += $(ACTIONTESTS)
+check_PROGRAMS += $(ACTIONTESTS) 
+noinst_PROGRAMS += $(ACTIONTESTS)
 
-BOOST_LIB = $(BOOST_LDFLAGS) $(BOOST_MPL_LIB) $(BOOST_PROGRAM_OPTIONS_LIB) $(BOOST_FILESYSTEM_LIB) $(BOOST_SYSTEM_LIB) $(BOOST_THREAD_LIB)
-GSLLIBS = \
-	../../Shapes/libMolecuilderShapes.la \
-	$(top_builddir)/LinearAlgebra/src/LinearAlgebra/libLinearAlgebra.la \
-	../../RandomNumbers/libMolecuilderRandomNumbers.la \
-	${CodePatterns_LIBS} \
-	$(BOOST_LIB)
-ALLLIBS = \
-	../../UIElements/libMolecuilderUI.la \
-	../../Actions/libMolecuilderActions.la \
-	${PARSERLIBS} \
-	../../libMolecuilder.la \
-	${GSLLIBS}
-
-PARSERLIBS = ../../Parser/libMolecuilderParser.la
-UILIBS = ../../UIElements/libMolecuilderUI.la  
-
+ACTIONLIBS = \
+	../libMolecuilderUI.la
 
 ActionRegistryUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
-	ActionRegistryUnitTest.cpp \
-	ActionRegistryUnitTest.hpp
-ActionRegistryUnitTest_LDADD = ${ALLLIBS}
+	../Actions/unittests/ActionRegistryUnitTest.cpp \
+	../Actions/unittests/ActionRegistryUnitTest.hpp
+ActionRegistryUnitTest_LDADD = ${ACTIONLIBS}
 
 ActionSequenceUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
-	ActionSequenceUnitTest.cpp \
-	ActionSequenceUnitTest.hpp
-ActionSequenceUnitTest_LDADD = ${ALLLIBS}
+	../Actions/unittests/ActionSequenceUnitTest.cpp \
+	../Actions/unittests/ActionSequenceUnitTest.hpp
+ActionSequenceUnitTest_LDADD = ${ACTIONLIBS}
 
 AtomsCalculationUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
-	AtomsCalculationUnitTest.cpp \
-	AtomsCalculationUnitTest.hpp
-AtomsCalculationUnitTest_LDADD = ${ALLLIBS}
+	../Actions/unittests/AtomsCalculationUnitTest.cpp \
+	../Actions/unittests/AtomsCalculationUnitTest.hpp
+AtomsCalculationUnitTest_LDADD = ${ACTIONLIBS}
 
 ManipulateAtomsUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
-	ManipulateAtomsUnitTest.cpp \
-	ManipulateAtomsUnitTest.hpp
-ManipulateAtomsUnitTest_LDADD = ${ALLLIBS}
+	../Actions/unittests/ManipulateAtomsUnitTest.cpp \
+	../Actions/unittests/ManipulateAtomsUnitTest.hpp
+ManipulateAtomsUnitTest_LDADD = ${ACTIONLIBS}
 
 
