Index: src/Fragmentation/Automation/MPQCFragmentController.hpp
===================================================================
--- src/Fragmentation/Automation/MPQCFragmentController.hpp	(revision a42feea2484491fdb28f92c73043956e00a2d922)
+++ src/Fragmentation/Automation/MPQCFragmentController.hpp	(revision d4eaf11f136baa85a4bdfa982418399b22a44110)
@@ -70,5 +70,5 @@
 private:
   //!> type-specific result container
-  SpecificFragmentController::ResultContainer<MPQCData> results;
+  SpecificFragmentController::ReceiveResultContainer<MPQCData> results;
 };
 
Index: src/Fragmentation/Automation/Makefile.am
===================================================================
--- src/Fragmentation/Automation/Makefile.am	(revision a42feea2484491fdb28f92c73043956e00a2d922)
+++ src/Fragmentation/Automation/Makefile.am	(revision d4eaf11f136baa85a4bdfa982418399b22a44110)
@@ -17,5 +17,5 @@
 	Fragmentation/Automation/MPQCFragmentController.hpp \
 	Fragmentation/Automation/SpecificFragmentController.hpp \
-	Fragmentation/Automation/SpecificFragmentController_ResultContainer_impl.hpp
+	Fragmentation/Automation/SpecificFragmentController_ReceiveResultContainer_impl.hpp
 	
 if CONDVMG
Index: src/Fragmentation/Automation/SpecificFragmentController.hpp
===================================================================
--- src/Fragmentation/Automation/SpecificFragmentController.hpp	(revision a42feea2484491fdb28f92c73043956e00a2d922)
+++ src/Fragmentation/Automation/SpecificFragmentController.hpp	(revision d4eaf11f136baa85a4bdfa982418399b22a44110)
@@ -60,5 +60,5 @@
    */
   template <typename T>
-  struct ResultContainer {
+  struct ReceiveResultContainer {
     /** cycle to wait for results
      *
@@ -79,4 +79,13 @@
     size_t receiveResults(SpecificFragmentController &callback);
 
+    /** Inserts FragmentResult's into IdData.
+     *
+     * \param results raw results to insert, containing ids
+     * \param fragmentData converted results to insert, containing data
+     */
+    void insertResults(
+        const std::vector<FragmentResult::ptr> &results,
+        std::vector<T> &fragmentData);
+
     /** Extracts specific Data type from received vector of FragmentResults.
      *
@@ -86,5 +95,5 @@
     void ConvertFragmentResultTo(
         const std::vector<FragmentResult::ptr> &results,
-        std::vector<T> &fragmentData);
+        std::vector<T> &fragmentData) const;
 
     /** Clears all internally stored results.
@@ -109,5 +118,5 @@
 };
 
-#include "SpecificFragmentController_ResultContainer_impl.hpp"
+#include "SpecificFragmentController_ReceiveResultContainer_impl.hpp"
 
 #endif /* SPECIFICFRAGMENTCONTROLLER_HPP_ */
Index: src/Fragmentation/Automation/SpecificFragmentController_ReceiveResultContainer_impl.hpp
===================================================================
--- src/Fragmentation/Automation/SpecificFragmentController_ReceiveResultContainer_impl.hpp	(revision d4eaf11f136baa85a4bdfa982418399b22a44110)
+++ src/Fragmentation/Automation/SpecificFragmentController_ReceiveResultContainer_impl.hpp	(revision d4eaf11f136baa85a4bdfa982418399b22a44110)
@@ -0,0 +1,118 @@
+/*
+ * SpecificFragmentController_ReceiveResultContainer_impl.hpp
+ *
+ *  Created on: Aug 27, 2012
+ *      Author: heber
+ */
+
+#ifndef SPECIFICFRAGMENTCONTROLLER_RECEIVERESULTCONTAINER_IMPL_HPP_
+#define SPECIFICFRAGMENTCONTROLLER_RECEIVERESULTCONTAINER_IMPL_HPP_
+
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "SpecificFragmentController.hpp"
+
+#include "CodePatterns/Assert.hpp"
+#include "CodePatterns/toString.hpp"
+
+
+template <typename T>
+size_t SpecificFragmentController::ReceiveResultContainer<T>::receiveResults(
+    SpecificFragmentController &callback)
+{
+  // receive (and remove the respective ids)
+  callback.receiveResults(callback.host, callback.port);
+  callback.RunService("Requesting results");
+  std::vector<FragmentResult::ptr> fragmentresults = callback.getReceivedResults();
+
+  // convert
+  std::vector<T> fragmentData;
+  ConvertFragmentResultTo(fragmentresults, fragmentData);
+
+  // insert into map
+  insertResults(fragmentresults, fragmentData);
+
+  return fragmentData.size();
+}
+
+template <typename T>
+void SpecificFragmentController::ReceiveResultContainer<T>::waitforResults(
+    const size_t NoExpectedResults,
+    boost::asio::io_service &io_service,
+    SpecificFragmentController &callback)
+{
+  // wait but receive all results that are already done
+  size_t NoReceivedResults = 0;
+  while (NoReceivedResults != NoExpectedResults) {
+    // wait a bit
+    boost::asio::deadline_timer timer(io_service);
+    timer.expires_from_now(boost::posix_time::milliseconds(500));
+    timer.wait();
+    // then request status
+    callback.checkResults(callback.host, callback.port);
+    callback.RunService("Checking on results");
+
+    const std::pair<size_t, size_t> JobStatus = callback.getJobStatus();
+    const size_t NoCalculatedResults = JobStatus.second;
+    // if some are done, get them
+    if (NoCalculatedResults != 0) {
+      NoReceivedResults += receiveResults(callback);
+      callback.handler(NoReceivedResults, NoExpectedResults);
+      LOG(1, "INFO: #" << JobStatus.first << " are waiting in the queue and #" << NoReceivedResults << " of " << NoExpectedResults << " jobs are calculated so far.");
+    }
+  }
+}
+
+template <typename T>
+void SpecificFragmentController::ReceiveResultContainer<T>::ConvertFragmentResultTo(
+    const std::vector<FragmentResult::ptr> &results,
+    std::vector<T> &fragmentData) const
+{
+  // extract results
+  fragmentData.clear();
+  fragmentData.reserve(results.size());
+
+  LOG(2, "DEBUG: Parsing now through " << results.size() << " results.");
+ for (std::vector<FragmentResult::ptr>::const_iterator iter = results.begin();
+      iter != results.end(); ++iter) {
+    //LOG(1, "RESULT: job #"+toString((*iter)->getId())+": "+toString((*iter)->result));
+    T extractedData;
+    std::stringstream inputstream((*iter)->result);
+    LOG(2, "DEBUG: First 50 characters FragmentResult's string: "+(*iter)->result.substr(0, 50));
+    boost::archive::text_iarchive ia(inputstream);
+    ia >> extractedData;
+   LOG(1, "INFO: extracted data is " << extractedData << ".");
+    fragmentData.push_back(extractedData);
+  }
+
+  ASSERT( results.size() == fragmentData.size(),
+      "ConvertFragmentResultTo() - the number of extracted data differs from the number of results.");
+}
+
+template <typename T>
+void SpecificFragmentController::ReceiveResultContainer<T>::insertResults(
+    const std::vector<FragmentResult::ptr> &fragmentresults,
+    std::vector<T> &fragmentData)
+{
+  std::vector<FragmentResult::ptr>::const_iterator resultiter = fragmentresults.begin();
+  typename std::vector<T>::const_iterator dataiter = fragmentData.begin();
+  for(;resultiter != fragmentresults.end(); ++resultiter, ++dataiter) {
+    const JobId_t _id = (*resultiter)->getId();
+#ifndef NDEBUG
+    std::pair<typename std::map<JobId_t, T>::iterator, bool> inserter =
+#endif
+    IdData.insert( std::make_pair( _id, *dataiter) );
+    ASSERT( inserter.second,
+        "ReceiveResultContainer::insertResults() - result id "
+        +toString(inserter.first->first)+" already present.");
+  }
+  ASSERT( dataiter == fragmentData.end(),
+      "ReceiveResultContainer::insertResults() - fragmentresults and fragmentdata differ in size.");
+}
+
+
+#endif /* SPECIFICFRAGMENTCONTROLLER_RECEIVERESULTCONTAINER_IMPL_HPP_ */
Index: c/Fragmentation/Automation/SpecificFragmentController_ResultContainer_impl.hpp
===================================================================
--- src/Fragmentation/Automation/SpecificFragmentController_ResultContainer_impl.hpp	(revision a42feea2484491fdb28f92c73043956e00a2d922)
+++ 	(revision )
@@ -1,108 +1,0 @@
-/*
- * SpecificFragmentController_impl.hpp
- *
- *  Created on: Aug 27, 2012
- *      Author: heber
- */
-
-#ifndef SPECIFICFRAGMENTCONTROLLER_IMPL_HPP_
-#define SPECIFICFRAGMENTCONTROLLER_IMPL_HPP_
-
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "SpecificFragmentController.hpp"
-
-#include "CodePatterns/Assert.hpp"
-#include "CodePatterns/toString.hpp"
-
-
-template <typename T>
-size_t SpecificFragmentController::ResultContainer<T>::receiveResults(
-    SpecificFragmentController &callback)
-{
-  // receive (and remove the respective ids)
-  callback.receiveResults(callback.host, callback.port);
-  callback.RunService("Requesting results");
-  std::vector<FragmentResult::ptr> fragmentresults = callback.getReceivedResults();
-
-  // convert
-  std::vector<T> fragmentData;
-  ConvertFragmentResultTo(fragmentresults, fragmentData);
-
-  // insert into map
-  std::vector<FragmentResult::ptr>::const_iterator resultiter = fragmentresults.begin();
-  typename std::vector<T>::const_iterator dataiter = fragmentData.begin();
-  for(;resultiter != fragmentresults.end(); ++resultiter, ++dataiter) {
-    const JobId_t _id = (*resultiter)->getId();
-#ifndef NDEBUG
-    std::pair<typename std::map<JobId_t, T>::iterator, bool> inserter =
-#endif
-    IdData.insert( std::make_pair( _id, *dataiter) );
-    ASSERT( inserter.second,
-        "SpecificFragmentController::ResultContainer::receiveResults() - result id "
-        +toString(inserter.first->first)+" already present.");
-  }
-  ASSERT( dataiter == fragmentData.end(),
-      "SpecificFragmentController::ResultContainer::receiveResults() - fragmentresults and fragmentdata differ in size.");
-  return fragmentData.size();
-}
-
-template <typename T>
-void SpecificFragmentController::ResultContainer<T>::waitforResults(
-    const size_t NoExpectedResults,
-    boost::asio::io_service &io_service,
-    SpecificFragmentController &callback)
-{
-  // wait but receive all results that are already done
-  size_t NoReceivedResults = 0;
-  while (NoReceivedResults != NoExpectedResults) {
-    // wait a bit
-    boost::asio::deadline_timer timer(io_service);
-    timer.expires_from_now(boost::posix_time::milliseconds(500));
-    timer.wait();
-    // then request status
-    callback.checkResults(callback.host, callback.port);
-    callback.RunService("Checking on results");
-
-    const std::pair<size_t, size_t> JobStatus = callback.getJobStatus();
-    const size_t NoCalculatedResults = JobStatus.second;
-    // if some are done, get them
-    if (NoCalculatedResults != 0) {
-      NoReceivedResults += receiveResults(callback);
-      callback.handler(NoReceivedResults, NoExpectedResults);
-      LOG(1, "INFO: #" << JobStatus.first << " are waiting in the queue and #" << NoReceivedResults << " of " << NoExpectedResults << " jobs are calculated so far.");
-    }
-  }
-}
-
-template <typename T>
-void SpecificFragmentController::ResultContainer<T>::ConvertFragmentResultTo(
-    const std::vector<FragmentResult::ptr> &results,
-    std::vector<T> &fragmentData)
-{
-  // extract results
-  fragmentData.clear();
-  fragmentData.reserve(results.size());
-
-  LOG(2, "DEBUG: Parsing now through " << results.size() << " results.");
-  for (std::vector<FragmentResult::ptr>::const_iterator iter = results.begin();
-      iter != results.end(); ++iter) {
-    //LOG(1, "RESULT: job #"+toString((*iter)->getId())+": "+toString((*iter)->result));
-    T extractedData;
-    std::stringstream inputstream((*iter)->result);
-    LOG(2, "DEBUG: First 50 characters FragmentResult's string: "+(*iter)->result.substr(0, 50));
-    boost::archive::text_iarchive ia(inputstream);
-    ia >> extractedData;
-    LOG(1, "INFO: extracted data is " << extractedData << ".");
-    fragmentData.push_back(extractedData);
-  }
-
-  ASSERT( results.size() == fragmentData.size(),
-      "ConvertFragmentResultTo() - the number of extracted data differs from the number of results.");
-}
-
-#endif /* SPECIFICFRAGMENTCONTROLLER_IMPL_HPP_ */
Index: src/Fragmentation/Automation/VMGDebugGridFragmentController.hpp
===================================================================
--- src/Fragmentation/Automation/VMGDebugGridFragmentController.hpp	(revision a42feea2484491fdb28f92c73043956e00a2d922)
+++ src/Fragmentation/Automation/VMGDebugGridFragmentController.hpp	(revision d4eaf11f136baa85a4bdfa982418399b22a44110)
@@ -55,5 +55,5 @@
 private:
   //!> type-specific result container
-  SpecificFragmentController::ResultContainer<std::string> results;
+  SpecificFragmentController::ReceiveResultContainer<std::string> results;
 };
 
Index: src/Fragmentation/Automation/VMGFragmentController.hpp
===================================================================
--- src/Fragmentation/Automation/VMGFragmentController.hpp	(revision a42feea2484491fdb28f92c73043956e00a2d922)
+++ src/Fragmentation/Automation/VMGFragmentController.hpp	(revision d4eaf11f136baa85a4bdfa982418399b22a44110)
@@ -89,5 +89,5 @@
 private:
   //!> type-specific result container
-  SpecificFragmentController::ResultContainer<VMGData> results;
+  SpecificFragmentController::ReceiveResultContainer<VMGData> results;
 };
 
