Index: src/Fragmentation/Exporters/ExportGraph.cpp
===================================================================
--- src/Fragmentation/Exporters/ExportGraph.cpp	(revision 7cdf589ccf036e0f97d60e4706154d2a771a947b)
+++ src/Fragmentation/Exporters/ExportGraph.cpp	(revision ac9ca46967e95fa2cebeb516a6755eef363225d5)
@@ -81,10 +81,4 @@
     BondFragments.ListOfMolecules.erase(iter);
   }
-}
-
-void ExportGraph::operator()()
-{
-  if (BondFragments.ListOfMolecules.size() == 0)
-    prepareMolecule();
 }
 
Index: src/Fragmentation/Exporters/ExportGraph.hpp
===================================================================
--- src/Fragmentation/Exporters/ExportGraph.hpp	(revision 7cdf589ccf036e0f97d60e4706154d2a771a947b)
+++ src/Fragmentation/Exporters/ExportGraph.hpp	(revision ac9ca46967e95fa2cebeb516a6755eef363225d5)
@@ -46,5 +46,5 @@
   typedef boost::shared_ptr<SaturatedFragment> SaturatedFragment_ptr;
 
-  virtual void operator()();
+  virtual void operator()()=0;
 
   /** Returns a saturated fragment for immediate use only.
Index: src/Fragmentation/Exporters/ExportGraph_ToFiles.cpp
===================================================================
--- src/Fragmentation/Exporters/ExportGraph_ToFiles.cpp	(revision 7cdf589ccf036e0f97d60e4706154d2a771a947b)
+++ src/Fragmentation/Exporters/ExportGraph_ToFiles.cpp	(revision ac9ca46967e95fa2cebeb516a6755eef363225d5)
@@ -103,5 +103,5 @@
 void ExportGraph_ToFiles::operator()()
 {
-  LOG(1, "INFO: Writing " << TotalGraph.size() << " possible bond fragmentation configs");
+  LOG(1, "INFO: Writing " << TotalGraph.size() << " possible bond fragmentation configs.");
   size_t FragmentCounter = 0;
   char *FragmentNumber = NULL;
Index: src/Fragmentation/Exporters/ExportGraph_ToJobs.cpp
===================================================================
--- src/Fragmentation/Exporters/ExportGraph_ToJobs.cpp	(revision 7cdf589ccf036e0f97d60e4706154d2a771a947b)
+++ src/Fragmentation/Exporters/ExportGraph_ToJobs.cpp	(revision ac9ca46967e95fa2cebeb516a6755eef363225d5)
@@ -33,8 +33,21 @@
 #endif
 
+// boost asio required before MemDebug due to placement new
+#include <boost/asio.hpp>
+
 #include "CodePatterns/MemDebug.hpp"
 
 #include "Fragmentation/Exporters/ExportGraph_ToJobs.hpp"
 
+#include <algorithm>
+
+#include "Box.hpp"
+#include "Fragmentation/KeySet.hpp"
+#include "Fragmentation/Automation/FragmentJobQueue.hpp"
+#include "Fragmentation/Automation/MPQCFragmentController.hpp"
+#include "Helpers/defs.hpp"
+#include "Jobs/MPQCJob.hpp"
+#include "LinearAlgebra/RealSpaceMatrix.hpp"
+#include "Parser/FormatParserStorage.hpp"
 #include "World.hpp"
 
@@ -43,5 +56,6 @@
     const enum HydrogenTreatment _treatment,
     const enum HydrogenSaturation _saturation) :
-    ExportGraph(_graph, _treatment, _saturation)
+    ExportGraph(_graph, _treatment, _saturation),
+    level(5)
 {}
 
@@ -51,4 +65,62 @@
 void ExportGraph_ToJobs::operator()()
 {
-  ExportGraph::operator()();
+  std::vector<FragmentJob::ptr> jobs;
+  KeySetsContainer KeySets;
+  KeySetsContainer FullKeySets;
+  jobs.reserve(TotalGraph.size());
+  LOG(1, "INFO: Creating " << TotalGraph.size() << " possible bond fragmentation jobs.");
+
+  // gather info about the domain
+  double begin[NDIM] = { 0., 0., 0. };
+  RealSpaceMatrix M = World::getInstance().getDomain().getM();
+  M *= 1./AtomicLengthToAngstroem;  // scale to atomic length units
+  const double size = M.at(0,0);
+  double end[NDIM] = { size, size, size };
+  const ParserTypes jobtype =
+      FormatParserStorage::getInstance().getTypeFromName("mpqc");
+
+  // go through all fragments, output to stream and create job therefrom
+  ExportGraph::SaturatedFragment_ptr CurrentFragment = getNextFragment();
+  for (; (CurrentFragment != NULL) && (CurrentFragment->getKeySet() != ExportGraph::EmptySet);
+      CurrentFragment = getNextFragment()) {
+    const KeySet &set = CurrentFragment->getKeySet();
+    LOG(2, "INFO: Creating bond fragment job for set " << set << ".");
+    // store config in stream
+    {
+      std::stringstream output;
+      // save to stream
+      CurrentFragment->OutputConfig(output, jobtype);
+      // create job and insert
+      FragmentJob::ptr testJob( new MPQCJob(JobId::IllegalJob, output.str(), begin, end, level) );
+      jobs.push_back(testJob);
+
+      // order is the same as the number of non-hydrogen atoms
+      const KeySet &keyset = CurrentFragment->getKeySet();
+      const size_t order = keyset.size();
+      const KeySet &fullmolecule = CurrentFragment->getFullMolecule();
+      const KeySet &saturationhydrogens = CurrentFragment->getSaturationHydrogens();
+      KeySetsContainer::IntVector indices(keyset.begin(), keyset.end());
+      KeySetsContainer::IntVector forceindices(fullmolecule.begin(), fullmolecule.end());
+      {
+        // replace all saturated hydrogen indices by "-1"
+        for (KeySetsContainer::IntVector::iterator iter = forceindices.begin();
+            iter != forceindices.end();
+            ++iter)
+          if (saturationhydrogens.find(*iter) != saturationhydrogens.end())
+            *iter = -1;
+      }
+      KeySets.insert(indices, order);
+      FullKeySets.insert(forceindices, order);
+    }
+    // store force index reference file
+    // explicitly release fragment
+    CurrentFragment.reset();
+  }
+  if (CurrentFragment == NULL) {
+    ELOG(1, "Some error while obtaining the next fragment occured.");
+    return;
+  }
+
+  // push final jobs
+  FragmentJobQueue::getInstance().addJobs(jobs, KeySets, FullKeySets);
 }
Index: src/Fragmentation/Exporters/ExportGraph_ToJobs.hpp
===================================================================
--- src/Fragmentation/Exporters/ExportGraph_ToJobs.hpp	(revision 7cdf589ccf036e0f97d60e4706154d2a771a947b)
+++ src/Fragmentation/Exporters/ExportGraph_ToJobs.hpp	(revision ac9ca46967e95fa2cebeb516a6755eef363225d5)
@@ -28,4 +28,12 @@
 {
 public:
+  /** Constructor for ExportGraph_ToJobs.
+   *
+   * Sets default level.
+   *
+   * \param _graph Graph with all KeySet's
+   * \param _treatment whether hydrogen is excluded in the _graph or not
+   * \param _saturation whether we saturate dangling bonds or not
+   */
   ExportGraph_ToJobs(
       const Graph &_graph,
@@ -36,4 +44,13 @@
 	void operator()();
 
+  /** Sets the level for the sampling of the density.
+   *
+   * \param _level level to set
+   */
+  void setLevel(const size_t _level) { level = _level; }
+
+private:
+  //!> resolution of sampled electron density as \f$2^{\mathrm{level}}\f$
+  size_t level;
 };
 
