Index: src/Fragmentation/Automation/FragmentJob.cpp
===================================================================
--- src/Fragmentation/Automation/FragmentJob.cpp	(revision c7deca229684c7b65fd3575bfb9ad413b64a2dc4)
+++ src/Fragmentation/Automation/FragmentJob.cpp	(revision 7b22e9544beb54c2218ef5e47d9851e8603c779d)
@@ -18,7 +18,15 @@
 #endif
 
+// boost asio needs specific operator new
+#include <boost/asio.hpp>
+#include <boost/date_time/posix_time/posix_time.hpp>
+
 #include "CodePatterns/MemDebug.hpp"
 
+#include "CodePatterns/Info.hpp"
+#include "CodePatterns/Log.hpp"
+#include "CodePatterns/toString.hpp"
 #include "FragmentJob.hpp"
+#include "FragmentResult.hpp"
 
 /** Constructor for class FragmentJob.
@@ -46,4 +54,26 @@
 {}
 
+/** 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());
+
+  boost::asio::io_service io;
+  boost::asio::deadline_timer t(io, boost::posix_time::seconds(1));
+  LOG(1, "INFO: Deadline timer will now wait for 1 seconds.");
+  t.wait();
+  LOG(1, "INFO: Deadline timer is done.");
+
+  return s;
+}
+
 /** Comparator for class FragmentJob.
  * \param other instance to compare to
Index: src/Fragmentation/Automation/FragmentJob.hpp
===================================================================
--- src/Fragmentation/Automation/FragmentJob.hpp	(revision c7deca229684c7b65fd3575bfb9ad413b64a2dc4)
+++ src/Fragmentation/Automation/FragmentJob.hpp	(revision 7b22e9544beb54c2218ef5e47d9851e8603c779d)
@@ -18,4 +18,5 @@
 #include "boost/serialization/array.hpp"
 
+#include "FragmentResult.hpp"
 #include "JobId.hpp"
 #include "types.hpp"
@@ -42,4 +43,6 @@
   ~FragmentJob();
 
+  FragmentResult Work();
+
   bool operator==(const FragmentJob &other) const;
 
Index: src/Fragmentation/Automation/Makefile.am
===================================================================
--- src/Fragmentation/Automation/Makefile.am	(revision c7deca229684c7b65fd3575bfb9ad413b64a2dc4)
+++ src/Fragmentation/Automation/Makefile.am	(revision 7b22e9544beb54c2218ef5e47d9851e8603c779d)
@@ -36,4 +36,5 @@
   atexit.cpp \
   FragmentJob.cpp \
+  FragmentResult.cpp \
   FragmentWorker.cpp \
   JobId.cpp \
@@ -44,4 +45,5 @@
   Connection.hpp \
   FragmentJob.hpp \
+  FragmentResult.hpp \
   FragmentWorker.hpp \
   JobId.hpp
Index: src/Fragmentation/Automation/unittests/FragmentJobUnitTest.cpp
===================================================================
--- src/Fragmentation/Automation/unittests/FragmentJobUnitTest.cpp	(revision c7deca229684c7b65fd3575bfb9ad413b64a2dc4)
+++ src/Fragmentation/Automation/unittests/FragmentJobUnitTest.cpp	(revision 7b22e9544beb54c2218ef5e47d9851e8603c779d)
@@ -29,4 +29,6 @@
 
 #include "FragmentJob.hpp"
+#include "FragmentResult.hpp"
+#include "JobId.hpp"
 
 #include "CodePatterns/Assert.hpp"
@@ -72,4 +74,18 @@
 }
 
+/** UnitTest for Work()
+ */
+void FragmentJobTest::WorkTest()
+{
+  FragmentJob testJob(command, 1);
+  FragmentJob othertestJob(command, 2);
+
+  FragmentResult testResult(testJob.Work());
+  FragmentResult othertestResult(othertestJob.Work());
+
+  CPPUNIT_ASSERT_EQUAL( (JobId_t)1, testResult.getId() );
+  CPPUNIT_ASSERT_EQUAL( (JobId_t)2, othertestResult.getId() );
+}
+
 /** UnitTest for serialization
  */
Index: src/Fragmentation/Automation/unittests/FragmentJobUnitTest.hpp
===================================================================
--- src/Fragmentation/Automation/unittests/FragmentJobUnitTest.hpp	(revision c7deca229684c7b65fd3575bfb9ad413b64a2dc4)
+++ src/Fragmentation/Automation/unittests/FragmentJobUnitTest.hpp	(revision 7b22e9544beb54c2218ef5e47d9851e8603c779d)
@@ -25,4 +25,5 @@
     CPPUNIT_TEST ( equalityTest );
     CPPUNIT_TEST ( serializationTest );
+    CPPUNIT_TEST ( WorkTest );
     CPPUNIT_TEST_SUITE_END();
 
@@ -32,4 +33,5 @@
       void equalityTest();
       void serializationTest();
+      void WorkTest();
 
 private:
Index: src/Fragmentation/Automation/unittests/Makefile.am
===================================================================
--- src/Fragmentation/Automation/unittests/Makefile.am	(revision c7deca229684c7b65fd3575bfb9ad413b64a2dc4)
+++ src/Fragmentation/Automation/unittests/Makefile.am	(revision 7b22e9544beb54c2218ef5e47d9851e8603c779d)
@@ -25,4 +25,5 @@
   $(BOOST_SERIALIZATION_LDFLAGS) $(BOOST_SERIALIZATION_LIBS) \
   $(BOOST_THREAD_LDFLAGS) $(BOOST_THREAD_LIBS) \
+  $(BOOST_SYSTEM_LDFLAGS) $(BOOST_SYSTEM_LIBS) \
   ${CodePatterns_LIBS}
 
@@ -34,9 +35,12 @@
   FragmentJob.cpp \
   FragmentJob.hpp \
+  unittests/stubs/FragmentResultStub.cpp \
+  FragmentResult.hpp \
   JobId.cpp \
   JobId.hpp
 FragmentJobUnitTest_LDADD = \
-  ${FRAGMENTATIONLIBS} \
-  $(BOOST_SERIALIZATION_LDFLAGS) $(BOOST_SERIALIZATION_LIBS)
+  $(BOOST_SERIALIZATION_LDFLAGS) $(BOOST_SERIALIZATION_LIBS) \
+  $(BOOST_SYSTEM_LDFLAGS) $(BOOST_SYSTEM_LIBS) \
+  ${CodePatterns_LIBS}
 
 FragmentQueueUnitTest_LDFLAGS = ${CodePatterns_LIBS} $(CPPUNIT_LIBS) -ldl
@@ -53,5 +57,8 @@
   JobId.cpp \
   JobId.hpp
-FragmentQueueUnitTest_LDADD = $(FRAGMENTATIONAUTOMATIONLIBS)
+FragmentQueueUnitTest_LDADD = \
+  $(BOOST_SERIALIZATION_LDFLAGS) $(BOOST_SERIALIZATION_LIBS) \
+  $(BOOST_SYSTEM_LDFLAGS) $(BOOST_SYSTEM_LIBS) \
+  ${CodePatterns_LIBS}
 
 FragmentResultUnitTest_LDFLAGS = ${CodePatterns_LIBS} $(CPPUNIT_LIBS) -ldl
@@ -65,6 +72,7 @@
   JobId.hpp
 FragmentResultUnitTest_LDADD = \
-  ${FRAGMENTATIONLIBS} \
-  $(BOOST_SERIALIZATION_LDFLAGS) $(BOOST_SERIALIZATION_LIBS)
+  $(BOOST_SERIALIZATION_LDFLAGS) $(BOOST_SERIALIZATION_LIBS) \
+  $(BOOST_SYSTEM_LDFLAGS) $(BOOST_SYSTEM_LIBS) \
+  ${CodePatterns_LIBS}
 
 
Index: src/Fragmentation/Automation/unittests/stubs/FragmentResultStub.cpp
===================================================================
--- src/Fragmentation/Automation/unittests/stubs/FragmentResultStub.cpp	(revision 7b22e9544beb54c2218ef5e47d9851e8603c779d)
+++ src/Fragmentation/Automation/unittests/stubs/FragmentResultStub.cpp	(revision 7b22e9544beb54c2218ef5e47d9851e8603c779d)
@@ -0,0 +1,30 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2011-2012 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * FragmentResultStub.cpp
+ *
+ *  Created on: Nov 24, 2011
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include "FragmentResult.hpp"
+
+FragmentResult::FragmentResult(const JobId_t _id) :
+  JobId(_id),
+  result(std::string("ResultStub"))
+{}
+
+FragmentResult::~FragmentResult()
+{}
