Index: src/Fragmentation/Automation/Controller/Commands/ReceiveJobsOperation.cpp
===================================================================
--- src/Fragmentation/Automation/Controller/Commands/ReceiveJobsOperation.cpp	(revision 78ad7d0534dc558c9de4b6b9d54bcc8e4dea409f)
+++ src/Fragmentation/Automation/Controller/Commands/ReceiveJobsOperation.cpp	(revision f0834d01293eb49b5445dc39c6e56c78abbdb7ff)
@@ -32,5 +32,5 @@
 #include "CodePatterns/Log.hpp"
 #include "ControllerChoices.hpp"
-#include "FragmentJob.hpp"
+#include "Jobs/FragmentJob.hpp"
 
 #include "Controller/Commands/ReceiveJobsOperation.hpp"
Index: src/Fragmentation/Automation/Controller/Commands/ReceiveJobsOperation.hpp
===================================================================
--- src/Fragmentation/Automation/Controller/Commands/ReceiveJobsOperation.hpp	(revision 78ad7d0534dc558c9de4b6b9d54bcc8e4dea409f)
+++ src/Fragmentation/Automation/Controller/Commands/ReceiveJobsOperation.hpp	(revision f0834d01293eb49b5445dc39c6e56c78abbdb7ff)
@@ -19,5 +19,5 @@
 
 #include "Connection.hpp"
-#include "FragmentJob.hpp"
+#include "Jobs/FragmentJob.hpp"
 
 #include "Controller/Commands/Operation.hpp"
Index: src/Fragmentation/Automation/Controller/FragmentController.hpp
===================================================================
--- src/Fragmentation/Automation/Controller/FragmentController.hpp	(revision 78ad7d0534dc558c9de4b6b9d54bcc8e4dea409f)
+++ src/Fragmentation/Automation/Controller/FragmentController.hpp	(revision f0834d01293eb49b5445dc39c6e56c78abbdb7ff)
@@ -19,5 +19,5 @@
 
 #include "Connection.hpp"
-#include "FragmentJob.hpp"
+#include "Jobs/FragmentJob.hpp"
 #include "FragmentResult.hpp"
 
Index: src/Fragmentation/Automation/FragmentJob.cpp
===================================================================
--- src/Fragmentation/Automation/FragmentJob.cpp	(revision 78ad7d0534dc558c9de4b6b9d54bcc8e4dea409f)
+++ 	(revision )
@@ -1,105 +1,0 @@
-/*
- * 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.
- */
-
-/*
- * FragmentJob.cpp
- *
- *  Created on: Oct 19, 2011
- *      Author: heber
- */
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "CodePatterns/MemDebug.hpp"
-
-#include <cstdlib>
-#include <fstream>
-#include <string>
-
-#include "CodePatterns/Info.hpp"
-#include "CodePatterns/Log.hpp"
-#include "CodePatterns/toString.hpp"
-#include "FragmentJob.hpp"
-#include "FragmentResult.hpp"
-
-/** Constructor for class FragmentJob.
- *
- */
-FragmentJob::FragmentJob() :
-  JobId(-1),
-  outputfile("")
-{}
-
-/** Constructor for class FragmentJob.
- *
- * \param _command command to execute
- * \param _outputfile configuration file for solver
- * \param _JobId unique id of this job
- */
-FragmentJob::FragmentJob(const std::string &_command, const std::string &_outputfile, const JobId_t _JobId) :
-  JobId(_JobId),
-  command(_command),
-  outputfile(_outputfile)
-{}
-
-/** Destructor for class FragmentJob.
- *
- */
-FragmentJob::~FragmentJob()
-{}
-
-/** Work routine of this FragmentJob.
- *
- * This function encapsulates all the work that has to be done to generate
- * a FragmentResult. Hence, the FragmentWorker does not need to know anything
- * about the operation: it just receives it and executes this function.
- *
- * \return result of this job
- */
-FragmentResult FragmentJob::Work()
-{
-  Info info((std::string(__FUNCTION__)+std::string(", id #")+toString(getId())).c_str());
-  FragmentResult s(getId());
-
-  // write outputfile to file
-  std::string inputfilename =
-      std::string("/tmp/dummy_")
-      +toString(getId());
-  std::string outputfilename = inputfilename+std::string(".out");
-  inputfilename += std::string(".dat");
-  std::ofstream output(outputfilename.c_str());
-  output << outputfile << std::endl;
-  output.close();
-
-  // fork into subprocess and launch command
-  s.exitflag = std::system((command+std::string(" ")+inputfilename
-                        +std::string(" >")+outputfilename).c_str());
-  std::ifstream resultfile;
-  resultfile.open(outputfilename.c_str(), ifstream::in);
-  char line[1024];
-  while (resultfile.good()) {
-    resultfile.getline(line, 1023);
-    s.result += line;
-  }
-  resultfile.close();
-
-  return s;
-}
-
-/** Comparator for class FragmentJob.
- * \param other instance to compare to
- * \return every member variable is the same, else - is not
- */
-bool FragmentJob::operator==(const FragmentJob &other) const
-{
-  return (command == other.command)
-      && (outputfile == other.outputfile)
-      && (getId() == other.getId());
-}
Index: src/Fragmentation/Automation/FragmentJob.hpp
===================================================================
--- src/Fragmentation/Automation/FragmentJob.hpp	(revision 78ad7d0534dc558c9de4b6b9d54bcc8e4dea409f)
+++ 	(revision )
@@ -1,76 +1,0 @@
-/*
- * FragmentJob.hpp
- *
- *  Created on: Oct 19, 2011
- *      Author: heber
- */
-
-#ifndef FRAGMENTJOB_HPP_
-#define FRAGMENTJOB_HPP_
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <string>
-
-#include "boost/shared_ptr.hpp"
-#include "boost/serialization/access.hpp"
-#include "boost/serialization/shared_ptr.hpp"
-
-#include "FragmentResult.hpp"
-#include "JobId.hpp"
-#include "types.hpp"
-
-class FragmentJobTest;
-class FragmentQueueTest;
-class FragmentWorker;
-
-/** FragmentJob contains all information for the Worker to start the job and
- * deliver a FragmentResult.
- *
- * Important is that this class is fully serializable such that it can be
- * transfered to a scheduler (server) and be deserialized by the Worker.
- */
-class FragmentJob : public JobId
-{
-  //!> allow FragmentQueue unit test access
-  friend class FragmentQueueTest;
-  //!> allow own unit test access
-  friend class FragmentJobTest;
-public:
-  typedef boost::shared_ptr<FragmentJob> ptr;
-
-  FragmentJob();
-  FragmentJob(const std::string &_command, const std::string &_outputfile, const JobId_t _JobId);
-  ~FragmentJob();
-
-  FragmentResult Work();
-
-  bool operator==(const FragmentJob &other) const;
-
-  bool operator!=(const FragmentJob &other) const {
-    return !(*this == other);
-  }
-
-  //!> string containing the command to launch the solver
-  std::string command;
-
-  //!> string containing the configuration file for the solver
-  std::string outputfile;
-
-private:
-  friend class boost::serialization::access;
-  // serialization
-  template <typename Archive>
-  void serialize(Archive& ar, const unsigned int version)
-  {
-    ar & boost::serialization::base_object<JobId>(*this);
-    ar & command;
-    ar & outputfile;
-  }
-};
-
-
-#endif /* FRAGMENTJOB_HPP_ */
Index: src/Fragmentation/Automation/FragmentQueue.hpp
===================================================================
--- src/Fragmentation/Automation/FragmentQueue.hpp	(revision 78ad7d0534dc558c9de4b6b9d54bcc8e4dea409f)
+++ src/Fragmentation/Automation/FragmentQueue.hpp	(revision f0834d01293eb49b5445dc39c6e56c78abbdb7ff)
@@ -19,5 +19,5 @@
 
 #include "types.hpp"
-#include "FragmentJob.hpp"
+#include "Jobs/FragmentJob.hpp"
 #include "FragmentResult.hpp"
 
Index: src/Fragmentation/Automation/FragmentScheduler.cpp
===================================================================
--- src/Fragmentation/Automation/FragmentScheduler.cpp	(revision 78ad7d0534dc558c9de4b6b9d54bcc8e4dea409f)
+++ src/Fragmentation/Automation/FragmentScheduler.cpp	(revision f0834d01293eb49b5445dc39c6e56c78abbdb7ff)
@@ -34,5 +34,5 @@
 #include "CodePatterns/Info.hpp"
 #include "CodePatterns/Log.hpp"
-#include "FragmentJob.hpp"
+#include "Jobs/FragmentJob.hpp"
 #include "JobId.hpp"
 
Index: src/Fragmentation/Automation/FragmentScheduler.hpp
===================================================================
--- src/Fragmentation/Automation/FragmentScheduler.hpp	(revision 78ad7d0534dc558c9de4b6b9d54bcc8e4dea409f)
+++ src/Fragmentation/Automation/FragmentScheduler.hpp	(revision f0834d01293eb49b5445dc39c6e56c78abbdb7ff)
@@ -18,5 +18,5 @@
 
 #include "Connection.hpp"
-#include "FragmentJob.hpp"
+#include "Jobs/FragmentJob.hpp"
 #include "FragmentQueue.hpp"
 #include "FragmentResult.hpp"
Index: src/Fragmentation/Automation/FragmentWorker.cpp
===================================================================
--- src/Fragmentation/Automation/FragmentWorker.cpp	(revision 78ad7d0534dc558c9de4b6b9d54bcc8e4dea409f)
+++ src/Fragmentation/Automation/FragmentWorker.cpp	(revision f0834d01293eb49b5445dc39c6e56c78abbdb7ff)
@@ -33,5 +33,5 @@
 #include "CodePatterns/Info.hpp"
 #include "CodePatterns/Log.hpp"
-#include "FragmentJob.hpp"
+#include "Jobs/FragmentJob.hpp"
 #include "FragmentResult.hpp"
 #include "FragmentWorker.hpp"
Index: src/Fragmentation/Automation/FragmentWorker.hpp
===================================================================
--- src/Fragmentation/Automation/FragmentWorker.hpp	(revision 78ad7d0534dc558c9de4b6b9d54bcc8e4dea409f)
+++ src/Fragmentation/Automation/FragmentWorker.hpp	(revision f0834d01293eb49b5445dc39c6e56c78abbdb7ff)
@@ -17,5 +17,5 @@
 #include <vector>
 #include "Connection.hpp"
-#include "FragmentJob.hpp"
+#include "Jobs/FragmentJob.hpp"
 
 /** Receives a job from Server to execute and return FragmentResult.
Index: src/Fragmentation/Automation/Jobs/FragmentJob.cpp
===================================================================
--- src/Fragmentation/Automation/Jobs/FragmentJob.cpp	(revision f0834d01293eb49b5445dc39c6e56c78abbdb7ff)
+++ src/Fragmentation/Automation/Jobs/FragmentJob.cpp	(revision f0834d01293eb49b5445dc39c6e56c78abbdb7ff)
@@ -0,0 +1,105 @@
+/*
+ * 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.
+ */
+
+/*
+ * FragmentJob.cpp
+ *
+ *  Created on: Oct 19, 2011
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include <cstdlib>
+#include <fstream>
+#include <string>
+
+#include "CodePatterns/Info.hpp"
+#include "CodePatterns/Log.hpp"
+#include "CodePatterns/toString.hpp"
+#include "FragmentJob.hpp"
+#include "FragmentResult.hpp"
+
+/** Constructor for class FragmentJob.
+ *
+ */
+FragmentJob::FragmentJob() :
+  JobId(-1),
+  outputfile("")
+{}
+
+/** Constructor for class FragmentJob.
+ *
+ * \param _command command to execute
+ * \param _outputfile configuration file for solver
+ * \param _JobId unique id of this job
+ */
+FragmentJob::FragmentJob(const std::string &_command, const std::string &_outputfile, const JobId_t _JobId) :
+  JobId(_JobId),
+  command(_command),
+  outputfile(_outputfile)
+{}
+
+/** Destructor for class FragmentJob.
+ *
+ */
+FragmentJob::~FragmentJob()
+{}
+
+/** Work routine of this FragmentJob.
+ *
+ * This function encapsulates all the work that has to be done to generate
+ * a FragmentResult. Hence, the FragmentWorker does not need to know anything
+ * about the operation: it just receives it and executes this function.
+ *
+ * \return result of this job
+ */
+FragmentResult FragmentJob::Work()
+{
+  Info info((std::string(__FUNCTION__)+std::string(", id #")+toString(getId())).c_str());
+  FragmentResult s(getId());
+
+  // write outputfile to file
+  std::string inputfilename =
+      std::string("/tmp/dummy_")
+      +toString(getId());
+  std::string outputfilename = inputfilename+std::string(".out");
+  inputfilename += std::string(".dat");
+  std::ofstream output(outputfilename.c_str());
+  output << outputfile << std::endl;
+  output.close();
+
+  // fork into subprocess and launch command
+  s.exitflag = std::system((command+std::string(" ")+inputfilename
+                        +std::string(" >")+outputfilename).c_str());
+  std::ifstream resultfile;
+  resultfile.open(outputfilename.c_str(), ifstream::in);
+  char line[1024];
+  while (resultfile.good()) {
+    resultfile.getline(line, 1023);
+    s.result += line;
+  }
+  resultfile.close();
+
+  return s;
+}
+
+/** Comparator for class FragmentJob.
+ * \param other instance to compare to
+ * \return every member variable is the same, else - is not
+ */
+bool FragmentJob::operator==(const FragmentJob &other) const
+{
+  return (command == other.command)
+      && (outputfile == other.outputfile)
+      && (getId() == other.getId());
+}
Index: src/Fragmentation/Automation/Jobs/FragmentJob.hpp
===================================================================
--- src/Fragmentation/Automation/Jobs/FragmentJob.hpp	(revision f0834d01293eb49b5445dc39c6e56c78abbdb7ff)
+++ src/Fragmentation/Automation/Jobs/FragmentJob.hpp	(revision f0834d01293eb49b5445dc39c6e56c78abbdb7ff)
@@ -0,0 +1,76 @@
+/*
+ * FragmentJob.hpp
+ *
+ *  Created on: Oct 19, 2011
+ *      Author: heber
+ */
+
+#ifndef FRAGMENTJOB_HPP_
+#define FRAGMENTJOB_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <string>
+
+#include "boost/shared_ptr.hpp"
+#include "boost/serialization/access.hpp"
+#include "boost/serialization/shared_ptr.hpp"
+
+#include "FragmentResult.hpp"
+#include "JobId.hpp"
+#include "types.hpp"
+
+class FragmentJobTest;
+class FragmentQueueTest;
+class FragmentWorker;
+
+/** FragmentJob contains all information for the Worker to start the job and
+ * deliver a FragmentResult.
+ *
+ * Important is that this class is fully serializable such that it can be
+ * transfered to a scheduler (server) and be deserialized by the Worker.
+ */
+class FragmentJob : public JobId
+{
+  //!> allow FragmentQueue unit test access
+  friend class FragmentQueueTest;
+  //!> allow own unit test access
+  friend class FragmentJobTest;
+public:
+  typedef boost::shared_ptr<FragmentJob> ptr;
+
+  FragmentJob();
+  FragmentJob(const std::string &_command, const std::string &_outputfile, const JobId_t _JobId);
+  ~FragmentJob();
+
+  FragmentResult Work();
+
+  bool operator==(const FragmentJob &other) const;
+
+  bool operator!=(const FragmentJob &other) const {
+    return !(*this == other);
+  }
+
+  //!> string containing the command to launch the solver
+  std::string command;
+
+  //!> string containing the configuration file for the solver
+  std::string outputfile;
+
+private:
+  friend class boost::serialization::access;
+  // serialization
+  template <typename Archive>
+  void serialize(Archive& ar, const unsigned int version)
+  {
+    ar & boost::serialization::base_object<JobId>(*this);
+    ar & command;
+    ar & outputfile;
+  }
+};
+
+
+#endif /* FRAGMENTJOB_HPP_ */
Index: src/Fragmentation/Automation/Makefile.am
===================================================================
--- src/Fragmentation/Automation/Makefile.am	(revision 78ad7d0534dc558c9de4b6b9d54bcc8e4dea409f)
+++ src/Fragmentation/Automation/Makefile.am	(revision f0834d01293eb49b5445dc39c6e56c78abbdb7ff)
@@ -13,14 +13,14 @@
 
 FRAGMENTJOBSSOURCE = \
-  FragmentJob.cpp \
   FragmentQueue.cpp \
   FragmentResult.cpp \
-  JobId.cpp
+  JobId.cpp \
+  Jobs/FragmentJob.cpp
           
 FRAGMENTJOBSHEADER = \
-  FragmentJob.hpp \
   FragmentQueue.hpp \
   FragmentResult.hpp \
-  JobId.hpp
+  JobId.hpp \
+  Jobs/FragmentJob.hpp
 
 noinst_LTLIBRARIES += libMolecuilderFragmentJobs.la
Index: src/Fragmentation/Automation/controller.cpp
===================================================================
--- src/Fragmentation/Automation/controller.cpp	(revision 78ad7d0534dc558c9de4b6b9d54bcc8e4dea409f)
+++ src/Fragmentation/Automation/controller.cpp	(revision f0834d01293eb49b5445dc39c6e56c78abbdb7ff)
@@ -39,5 +39,5 @@
 #include "Controller/Commands/SendResultsOperation.hpp"
 #include "Controller/Commands/ShutdownOperation.hpp"
-#include "FragmentJob.hpp"
+#include "Jobs/FragmentJob.hpp"
 #include "FragmentResult.hpp"
 
Index: src/Fragmentation/Automation/unittests/FragmentJobUnitTest.cpp
===================================================================
--- src/Fragmentation/Automation/unittests/FragmentJobUnitTest.cpp	(revision 78ad7d0534dc558c9de4b6b9d54bcc8e4dea409f)
+++ src/Fragmentation/Automation/unittests/FragmentJobUnitTest.cpp	(revision f0834d01293eb49b5445dc39c6e56c78abbdb7ff)
@@ -28,5 +28,5 @@
 #include "FragmentJobUnitTest.hpp"
 
-#include "FragmentJob.hpp"
+#include "Jobs/FragmentJob.hpp"
 #include "FragmentResult.hpp"
 #include "JobId.hpp"
Index: src/Fragmentation/Automation/unittests/Makefile.am
===================================================================
--- src/Fragmentation/Automation/unittests/Makefile.am	(revision 78ad7d0534dc558c9de4b6b9d54bcc8e4dea409f)
+++ src/Fragmentation/Automation/unittests/Makefile.am	(revision f0834d01293eb49b5445dc39c6e56c78abbdb7ff)
@@ -34,10 +34,10 @@
   unittests/FragmentJobUnitTest.cpp \
   unittests/FragmentJobUnitTest.hpp \
-  FragmentJob.cpp \
-  FragmentJob.hpp \
   unittests/stubs/FragmentResultStub.cpp \
   FragmentResult.hpp \
   JobId.cpp \
-  JobId.hpp
+  JobId.hpp \
+  Jobs/FragmentJob.cpp \
+  Jobs/FragmentJob.hpp
 FragmentJobUnitTest_LDADD = \
   $(BOOST_SERIALIZATION_LDFLAGS) $(BOOST_SERIALIZATION_LIBS) \
