diff --git a/build/includes/global/settings_functions.hpp b/build/includes/global/settings_functions.hpp
index 5e6df5596048274e0a55e10cd427f9af31210e9b..333c0c75527fd499259bb7d98046c71203284360 100644
--- a/build/includes/global/settings_functions.hpp
+++ b/build/includes/global/settings_functions.hpp
@@ -25,6 +25,7 @@ struct Distributed_Settings {
     int port;               // the port number of the server actor
     int total_hru_count;
     int num_hru_per_batch;
+    int total_nodes;  // For the data-assimilation mode
 };
 
 template<class Inspector>
diff --git a/build/includes/job_actor/job_actor.hpp b/build/includes/job_actor/job_actor.hpp
index 8082439331a7ef5dfe5b59a4f575b8796bdb6193..11ecd9315d2f003f64364efb484683ceb455c1df 100644
--- a/build/includes/job_actor/job_actor.hpp
+++ b/build/includes/job_actor/job_actor.hpp
@@ -79,6 +79,10 @@ struct job_state {
 };
 
 
+struct distributed_job_state {
+
+};
+
 /** The Job Actor */
 behavior job_actor(stateful_actor<job_state>* self, 
                    int start_gru, int num_gru, 
@@ -87,6 +91,13 @@ behavior job_actor(stateful_actor<job_state>* self,
                    HRU_Actor_Settings hru_actor_settings, 
                    actor parent);
 
+/** The Job Actor For Internode Communication */
+behavior distributed_job_actor(stateful_actor<distributed_job_state>* self,
+    Distributed_Settings distributed_settings,
+    File_Access_Actor_Settings file_access_actor_settings,
+    Job_Actor_Settings job_actor_settings, 
+    HRU_Actor_Settings hru_actor_settings);
+
 
 /*********************************************
  * Functions for the Job Actor
diff --git a/build/includes/job_actor/node_actor.hpp b/build/includes/job_actor/node_actor.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..a2d3aa384927b9bab094bee57053ae38f5dc88dc
--- /dev/null
+++ b/build/includes/job_actor/node_actor.hpp
@@ -0,0 +1,4 @@
+#pragma once
+
+#include "caf/all.hpp"
+#include "caf/io/all.hpp"
diff --git a/build/includes/summa_actor/batch.hpp b/build/includes/summa_actor/batch.hpp
index 0c3ab85dad32af55d93da77eac39397ce8de6fa1..cde00c16ad15a3a4b5bb9a9224002f3763e4af1c 100644
--- a/build/includes/summa_actor/batch.hpp
+++ b/build/includes/summa_actor/batch.hpp
@@ -1,6 +1,8 @@
 #pragma once
 #include "caf/all.hpp"
 #include <string>
+#include <iostream>
+#include <fstream>
 
 class Batch {
   private:
diff --git a/build/source/actors/file_access_actor/cppwrap_fileAccess.f90 b/build/source/file_access_actor/cppwrap_fileAccess.f90
similarity index 100%
rename from build/source/actors/file_access_actor/cppwrap_fileAccess.f90
rename to build/source/file_access_actor/cppwrap_fileAccess.f90
diff --git a/build/source/actors/file_access_actor/def_output.f90 b/build/source/file_access_actor/def_output.f90
similarity index 100%
rename from build/source/actors/file_access_actor/def_output.f90
rename to build/source/file_access_actor/def_output.f90
diff --git a/build/source/actors/file_access_actor/ffile_info.f90 b/build/source/file_access_actor/ffile_info.f90
similarity index 100%
rename from build/source/actors/file_access_actor/ffile_info.f90
rename to build/source/file_access_actor/ffile_info.f90
diff --git a/build/source/actors/file_access_actor/fileAccess_writeOutput.f90 b/build/source/file_access_actor/fileAccess_writeOutput.f90
similarity index 100%
rename from build/source/actors/file_access_actor/fileAccess_writeOutput.f90
rename to build/source/file_access_actor/fileAccess_writeOutput.f90
diff --git a/build/source/actors/file_access_actor/file_access_actor.cpp b/build/source/file_access_actor/file_access_actor.cpp
similarity index 100%
rename from build/source/actors/file_access_actor/file_access_actor.cpp
rename to build/source/file_access_actor/file_access_actor.cpp
diff --git a/build/source/actors/file_access_actor/forcing_file_info.cpp b/build/source/file_access_actor/forcing_file_info.cpp
similarity index 100%
rename from build/source/actors/file_access_actor/forcing_file_info.cpp
rename to build/source/file_access_actor/forcing_file_info.cpp
diff --git a/build/source/actors/file_access_actor/output_container.cpp b/build/source/file_access_actor/output_container.cpp
similarity index 100%
rename from build/source/actors/file_access_actor/output_container.cpp
rename to build/source/file_access_actor/output_container.cpp
diff --git a/build/source/actors/file_access_actor/output_structure.f90 b/build/source/file_access_actor/output_structure.f90
similarity index 100%
rename from build/source/actors/file_access_actor/output_structure.f90
rename to build/source/file_access_actor/output_structure.f90
diff --git a/build/source/actors/file_access_actor/read_force.f90 b/build/source/file_access_actor/read_force.f90
similarity index 100%
rename from build/source/actors/file_access_actor/read_force.f90
rename to build/source/file_access_actor/read_force.f90
diff --git a/build/source/actors/file_access_actor/summaversion.inc b/build/source/file_access_actor/summaversion.inc
similarity index 100%
rename from build/source/actors/file_access_actor/summaversion.inc
rename to build/source/file_access_actor/summaversion.inc
diff --git a/build/source/actors/global/actor_data_types.f90 b/build/source/global/actor_data_types.f90
similarity index 100%
rename from build/source/actors/global/actor_data_types.f90
rename to build/source/global/actor_data_types.f90
diff --git a/build/source/actors/global/auxiliary.cpp b/build/source/global/auxiliary.cpp
similarity index 100%
rename from build/source/actors/global/auxiliary.cpp
rename to build/source/global/auxiliary.cpp
diff --git a/build/source/actors/global/cppwrap_auxiliary.f90 b/build/source/global/cppwrap_auxiliary.f90
similarity index 100%
rename from build/source/actors/global/cppwrap_auxiliary.f90
rename to build/source/global/cppwrap_auxiliary.f90
diff --git a/build/source/actors/global/cppwrap_datatypes.f90 b/build/source/global/cppwrap_datatypes.f90
similarity index 100%
rename from build/source/actors/global/cppwrap_datatypes.f90
rename to build/source/global/cppwrap_datatypes.f90
diff --git a/build/source/actors/global/cppwrap_metadata.f90 b/build/source/global/cppwrap_metadata.f90
similarity index 100%
rename from build/source/actors/global/cppwrap_metadata.f90
rename to build/source/global/cppwrap_metadata.f90
diff --git a/build/source/actors/global/global.cpp b/build/source/global/global.cpp
similarity index 100%
rename from build/source/actors/global/global.cpp
rename to build/source/global/global.cpp
diff --git a/build/source/actors/global/message_atoms.cpp b/build/source/global/message_atoms.cpp
similarity index 100%
rename from build/source/actors/global/message_atoms.cpp
rename to build/source/global/message_atoms.cpp
diff --git a/build/source/actors/global/settings_functions.cpp b/build/source/global/settings_functions.cpp
similarity index 100%
rename from build/source/actors/global/settings_functions.cpp
rename to build/source/global/settings_functions.cpp
diff --git a/build/source/actors/global/timing_info.cpp b/build/source/global/timing_info.cpp
similarity index 100%
rename from build/source/actors/global/timing_info.cpp
rename to build/source/global/timing_info.cpp
diff --git a/build/source/actors/gru_actor/gru_actor.cpp b/build/source/gru_actor/gru_actor.cpp
similarity index 100%
rename from build/source/actors/gru_actor/gru_actor.cpp
rename to build/source/gru_actor/gru_actor.cpp
diff --git a/build/source/actors/gru_actor/gru_actor.f90 b/build/source/gru_actor/gru_actor.f90
similarity index 100%
rename from build/source/actors/gru_actor/gru_actor.f90
rename to build/source/gru_actor/gru_actor.f90
diff --git a/build/source/actors/hru_actor/hru_actor.cpp b/build/source/hru_actor/hru_actor.cpp
similarity index 100%
rename from build/source/actors/hru_actor/hru_actor.cpp
rename to build/source/hru_actor/hru_actor.cpp
diff --git a/build/source/actors/hru_actor/hru_batch_actor.cpp b/build/source/hru_actor/hru_batch_actor.cpp
similarity index 100%
rename from build/source/actors/hru_actor/hru_batch_actor.cpp
rename to build/source/hru_actor/hru_batch_actor.cpp
diff --git a/build/source/actors/hru_actor/hru_init.f90 b/build/source/hru_actor/hru_init.f90
similarity index 100%
rename from build/source/actors/hru_actor/hru_init.f90
rename to build/source/hru_actor/hru_init.f90
diff --git a/build/source/actors/hru_actor/hru_modelRun.f90 b/build/source/hru_actor/hru_modelRun.f90
similarity index 100%
rename from build/source/actors/hru_actor/hru_modelRun.f90
rename to build/source/hru_actor/hru_modelRun.f90
diff --git a/build/source/actors/hru_actor/hru_read.f90 b/build/source/hru_actor/hru_read.f90
similarity index 100%
rename from build/source/actors/hru_actor/hru_read.f90
rename to build/source/hru_actor/hru_read.f90
diff --git a/build/source/actors/hru_actor/hru_writeOutput.f90 b/build/source/hru_actor/hru_writeOutput.f90
similarity index 100%
rename from build/source/actors/hru_actor/hru_writeOutput.f90
rename to build/source/hru_actor/hru_writeOutput.f90
diff --git a/build/source/actors/job_actor/GRU.cpp b/build/source/job_actor/GRU.cpp
similarity index 100%
rename from build/source/actors/job_actor/GRU.cpp
rename to build/source/job_actor/GRU.cpp
diff --git a/build/source/job_actor/distributed_job_actor.cpp b/build/source/job_actor/distributed_job_actor.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..56eb2eb8c14c159a27340ba08e2eacdb2619f7f4
--- /dev/null
+++ b/build/source/job_actor/distributed_job_actor.cpp
@@ -0,0 +1,17 @@
+#include "job_actor.hpp"
+
+namespace caf {
+
+behavior distributed_job_actor(stateful_actor<distributed_job_state>* self,
+                               Distributed_Settings distributed_settings,
+                               File_Access_Actor_Settings file_access_actor_settings,
+                               Job_Actor_Settings job_actor_settings, 
+                               HRU_Actor_Settings hru_actor_settings) {
+  aout(self) << "Starting Distributed Job Actor\n";
+  
+  return {};
+}
+
+
+
+} // namespace caf
\ No newline at end of file
diff --git a/build/source/actors/job_actor/job_actor.cpp b/build/source/job_actor/job_actor.cpp
similarity index 100%
rename from build/source/actors/job_actor/job_actor.cpp
rename to build/source/job_actor/job_actor.cpp
diff --git a/build/source/actors/job_actor/job_actor.f90 b/build/source/job_actor/job_actor.f90
similarity index 100%
rename from build/source/actors/job_actor/job_actor.f90
rename to build/source/job_actor/job_actor.f90
diff --git a/build/source/job_actor/node_actor.cpp b/build/source/job_actor/node_actor.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..5bf191c5b9a8f3fa064b36f5f7575812cbee670d
--- /dev/null
+++ b/build/source/job_actor/node_actor.cpp
@@ -0,0 +1 @@
+#include "node_actor.hpp"
diff --git a/build/source/actors/main.cpp b/build/source/main.cpp
similarity index 94%
rename from build/source/actors/main.cpp
rename to build/source/main.cpp
index 4d97183001424092ef44fa952280376504df7014..be3ac8df007273b92d7c229cb965c81787ba4dca 100644
--- a/build/source/actors/main.cpp
+++ b/build/source/main.cpp
@@ -4,6 +4,7 @@
 #include "summa_client.hpp"
 #include "summa_server.hpp"
 #include "summa_backup_server.hpp"
+#include "job_actor.hpp"
 #include "global.hpp"
 #include "settings_functions.hpp"
 #include "message_atoms.hpp"
@@ -65,15 +66,6 @@ class config : public actor_system_config {
     }
 };
 
-void connect_client(caf::actor client_to_connect, std::string host_to_connect_to, int port_number) {
-    if (!host_to_connect_to.empty() && port_number > 0) {
-        uint16_t port = 4444;
-        anon_send(client_to_connect, connect_atom_v, host_to_connect_to, (uint16_t) port );
-
-    } else {
-        std::cerr << "No Server Config" << std::endl;
-    }
-}
 
 void run_client(actor_system& system, const config& cfg, Distributed_Settings distributed_settings) {
     scoped_actor self{system};
@@ -153,7 +145,8 @@ void caf_main(actor_system& sys, const config& cfg) {
                            file_access_actor_settings, job_actor_settings,
                            hru_actor_settings);
 
-  if (distributed_settings.distributed_mode) {
+  if (distributed_settings.distributed_mode && 
+      !job_actor_settings.data_assimilation_mode) {
     // only command line arguments needed are config_file and server-mode
     if (cfg.server_mode) {
       run_server(sys, cfg, distributed_settings, summa_actor_settings, 
@@ -163,6 +156,16 @@ void caf_main(actor_system& sys, const config& cfg) {
       run_client(sys,cfg, distributed_settings);
     }
 
+  } else if (distributed_settings.distributed_mode &&
+            job_actor_settings.data_assimilation_mode) {
+    
+    auto dist_summa = sys.spawn(distributed_job_actor,
+                                distributed_settings,
+                                file_access_actor_settings,
+                                job_actor_settings,
+                                hru_actor_settings);
+
+
   } else {
     auto summa = sys.spawn(summa_actor, 
                            cfg.startGRU, 
diff --git a/build/source/actors/summa_actor/batch.cpp b/build/source/summa_actor/batch.cpp
similarity index 100%
rename from build/source/actors/summa_actor/batch.cpp
rename to build/source/summa_actor/batch.cpp
diff --git a/build/source/actors/summa_actor/batch_container.cpp b/build/source/summa_actor/batch_container.cpp
similarity index 100%
rename from build/source/actors/summa_actor/batch_container.cpp
rename to build/source/summa_actor/batch_container.cpp
diff --git a/build/source/actors/summa_actor/client.cpp b/build/source/summa_actor/client.cpp
similarity index 100%
rename from build/source/actors/summa_actor/client.cpp
rename to build/source/summa_actor/client.cpp
diff --git a/build/source/actors/summa_actor/client_container.cpp b/build/source/summa_actor/client_container.cpp
similarity index 100%
rename from build/source/actors/summa_actor/client_container.cpp
rename to build/source/summa_actor/client_container.cpp
diff --git a/build/source/actors/summa_actor/summa_actor.cpp b/build/source/summa_actor/summa_actor.cpp
similarity index 100%
rename from build/source/actors/summa_actor/summa_actor.cpp
rename to build/source/summa_actor/summa_actor.cpp
diff --git a/build/source/actors/summa_actor/summa_backup_server.cpp b/build/source/summa_actor/summa_backup_server.cpp
similarity index 100%
rename from build/source/actors/summa_actor/summa_backup_server.cpp
rename to build/source/summa_actor/summa_backup_server.cpp
diff --git a/build/source/actors/summa_actor/summa_client.cpp b/build/source/summa_actor/summa_client.cpp
similarity index 100%
rename from build/source/actors/summa_actor/summa_client.cpp
rename to build/source/summa_actor/summa_client.cpp
diff --git a/build/source/actors/summa_actor/summa_server.cpp b/build/source/summa_actor/summa_server.cpp
similarity index 100%
rename from build/source/actors/summa_actor/summa_server.cpp
rename to build/source/summa_actor/summa_server.cpp