Index: src/Actions/FragmentationAction/FragmentationAutomationAction.cpp
===================================================================
--- src/Actions/FragmentationAction/FragmentationAutomationAction.cpp	(revision 184615a835601d841ff0ed66b473f820611f27cc)
+++ src/Actions/FragmentationAction/FragmentationAutomationAction.cpp	(revision a3112d40f12175114c1cbb5f5fd931fa82579847)
@@ -255,8 +255,8 @@
   /// convert all MPQCData to MPQCDataMap_t
   std::vector<MPQCDataGridMap_t> Result_Grid_fused(
-    OrthogonalSumUpPerLevel<MPQCDataGridMap_t, MPQCDataGridVector_t>(
+    OrthogonalSumUpPerLevel<MPQCDataGridMap_t, MPQCData, MPQCDataGridVector_t>(
         fragmentData, MatrixNrLookup, container, subsetmap));
   std::vector<MPQCDataFragmentMap_t> Result_Fragment_fused(
-    OrthogonalSumUpPerLevel<MPQCDataFragmentMap_t, MPQCDataFragmentVector_t>(
+    OrthogonalSumUpPerLevel<MPQCDataFragmentMap_t, MPQCData, MPQCDataFragmentVector_t>(
         fragmentData, MatrixNrLookup, container, subsetmap));
   // obtain full grid
@@ -419,14 +419,14 @@
     typedef boost::mpl::remove<MPQCDataEnergyVector_t, MPQCDataFused::energy_eigenvalues>::type MPQCDataEnergyVector_noeigenvalues_t;
     std::vector<MPQCDataEnergyMap_t> Result_Energy_fused(
-        OrthogonalSumUpPerLevel<MPQCDataEnergyMap_t, MPQCDataEnergyVector_t>(
+        OrthogonalSumUpPerLevel<MPQCDataEnergyMap_t, MPQCData, MPQCDataEnergyVector_t>(
             fragmentData, MPQCMatrixNrLookup, container, subsetmap));
     std::vector<MPQCDataGridMap_t> Result_Grid_fused(
-      OrthogonalSumUpPerLevel<MPQCDataGridMap_t, MPQCDataGridVector_t>(
+      OrthogonalSumUpPerLevel<MPQCDataGridMap_t, MPQCData, MPQCDataGridVector_t>(
           fragmentData, MPQCMatrixNrLookup, container, subsetmap));
     std::vector<MPQCDataTimeMap_t> Result_Time_fused(
-      SumUpPerLevel<MPQCDataTimeMap_t, MPQCDataTimeVector_t>(
+      SumUpPerLevel<MPQCDataTimeMap_t, MPQCData, MPQCDataTimeVector_t>(
           fragmentData, MPQCMatrixNrLookup, container, subsetmap));
     std::vector<MPQCDataFragmentMap_t> Result_Fragment_fused(
-      OrthogonalSumUpPerLevel<MPQCDataFragmentMap_t, MPQCDataFragmentVector_t>(
+      OrthogonalSumUpPerLevel<MPQCDataFragmentMap_t, MPQCData, MPQCDataFragmentVector_t>(
           fragmentData, MPQCMatrixNrLookup, container, subsetmap));
 
Index: src/Fragmentation/Summation/OrthogonalSumUpPerLevel.hpp
===================================================================
--- src/Fragmentation/Summation/OrthogonalSumUpPerLevel.hpp	(revision 184615a835601d841ff0ed66b473f820611f27cc)
+++ src/Fragmentation/Summation/OrthogonalSumUpPerLevel.hpp	(revision a3112d40f12175114c1cbb5f5fd931fa82579847)
@@ -27,7 +27,7 @@
 #include <boost/mpl/for_each.hpp>
 
-template <typename TypeMap, typename TypeVector>
+template <typename TypeMap, typename TypeData, typename TypeVector>
 std::vector<TypeMap> OrthogonalSumUpPerLevel(
-    const std::map<JobId_t, MPQCData> &fragmentData,
+    const std::map<JobId_t, TypeData> &fragmentData,
     const std::map< JobId_t, size_t > &MatrixNrLookup,
     const IndexSetContainer::ptr &container,
@@ -36,11 +36,11 @@
 {
   // place data into boost::fusion::map instance
-  std::map<JobId_t, TypeMap> MPQCData_fused;
-  convertDataTo<MPQCData, TypeMap>(fragmentData, MPQCData_fused);
+  std::map<JobId_t, TypeMap> Data_fused;
+  convertDataTo<TypeData, TypeMap>(fragmentData, Data_fused);
   // instantiate summator
   std::vector<TypeMap> Result_fused(subsetmap->getMaximumSubsetLevel());
   AllLevelOrthogonalSummator<TypeMap> Summer(
               subsetmap,
-              MPQCData_fused,
+              Data_fused,
               container->getContainer(),
               MatrixNrLookup,
Index: src/Fragmentation/Summation/SumUpPerLevel.hpp
===================================================================
--- src/Fragmentation/Summation/SumUpPerLevel.hpp	(revision 184615a835601d841ff0ed66b473f820611f27cc)
+++ src/Fragmentation/Summation/SumUpPerLevel.hpp	(revision a3112d40f12175114c1cbb5f5fd931fa82579847)
@@ -26,7 +26,7 @@
 #include <boost/mpl/for_each.hpp>
 
-template <typename TypeMap, typename TypeVector>
+template <typename TypeMap, typename TypeData, typename TypeVector>
 std::vector<TypeMap> SumUpPerLevel(
-    const std::map<JobId_t, MPQCData> &fragmentData,
+    const std::map<JobId_t, TypeData> &fragmentData,
     const std::map< JobId_t, size_t > &MatrixNrLookup,
     const IndexSetContainer::ptr &container,
@@ -35,11 +35,11 @@
 {
   // place data into boost::fusion::map instance
-  std::map<JobId_t, TypeMap> MPQCData_fused;
-  convertDataTo<MPQCData, TypeMap>(fragmentData, MPQCData_fused);
+  std::map<JobId_t, TypeMap> Data_fused;
+  convertDataTo<TypeData, TypeMap>(fragmentData, Data_fused);
   // instantiate summator
   std::vector<TypeMap> Result_fused(subsetmap->getMaximumSubsetLevel());
   AllLevelSummator<TypeMap> Summer(
               subsetmap,
-              MPQCData_fused,
+              Data_fused,
               container->getContainer(),
               MatrixNrLookup,
