diff --git a/build/includes/summa_actor/summa_backup_server.hpp b/build/includes/summa_actor/summa_backup_server.hpp
index 08033dd07b3466e15a884e636df282b42ea4f037..e6f0b33032abb1dd483b2202176ba5193d41d87d 100644
--- a/build/includes/summa_actor/summa_backup_server.hpp
+++ b/build/includes/summa_actor/summa_backup_server.hpp
@@ -8,6 +8,7 @@ namespace caf {
     struct summa_backup_state {
         strong_actor_ptr current_server;
         std::string hostname;
+        actor backup;
     };
 
 behavior summa_backup_server(stateful_actor<summa_backup_state>* self);
diff --git a/build/includes/summa_actor/summa_server.hpp b/build/includes/summa_actor/summa_server.hpp
index 324b8f9c648dc95ab844beb3ad1e6f25edb583ea..31a2c4a71c5caf17b29f0d2e0f420a3cb13b215d 100644
--- a/build/includes/summa_actor/summa_server.hpp
+++ b/build/includes/summa_actor/summa_server.hpp
@@ -12,8 +12,8 @@
 namespace caf {
 
 struct summa_server_state {
-    actor backup_server;
-    
+    actor backup_server = nullptr;
+    actor backup_server2 = nullptr;
     int num_clients;
     int batches_remaining = 0;
     int batches_solved = 0;
diff --git a/build/source/actors/summa_actor/summa_backup_server.cpp b/build/source/actors/summa_actor/summa_backup_server.cpp
index 00bfa1d3ae75a051b4a45c95e1d4312085fd5c14..28ed666ca9e132e6f1db85e0e5080f430da0bebb 100644
--- a/build/source/actors/summa_actor/summa_backup_server.cpp
+++ b/build/source/actors/summa_actor/summa_backup_server.cpp
@@ -12,17 +12,20 @@ behavior summa_backup_server(stateful_actor<summa_backup_state>* self) {
     self->set_down_handler([=](const down_msg& dm){
         if(dm.source == self->state.current_server) {
             aout(self) << "*** Lost Connection to Server" << std::endl;
+            uint16_t port = 4444;
+            std::string host = "a0449745d77d";
+            connecting(self, host, port);
 
-            auto new_server = self->spawn(backup_server);
+            // auto new_server = self->spawn(backup_server);
 
-            int port = 4444;
-            aout(self) << "Attempting to publish backup server on port - " << port << std::endl;
-            auto is_port = io::publish(new_server, port);
-            if (!is_port) {
-                std::cerr << "********PUBLISH FAILED*******" << to_string(is_port.error()) << "\n";
-                return;
-            }
-            aout(self) << "Successfully Published summa_server_actor on port " << *is_port << "\n";
+            // int port = 4444;
+            // aout(self) << "Attempting to publish backup server on port - " << port << std::endl;
+            // auto is_port = io::publish(new_server, port);
+            // if (!is_port) {
+            //     std::cerr << "********PUBLISH FAILED*******" << to_string(is_port.error()) << "\n";
+            //     return;
+            // }
+            // aout(self) << "Successfully Published summa_server_actor on port " << *is_port << "\n";
 
             // self->state.current_server = nullptr;
             // self->become(unconnected(self));
@@ -79,21 +82,41 @@ behavior running(stateful_actor<summa_backup_state>* self, const actor& server_a
     return {
         [=](connect_as_backup) {
             aout(self) << "Successfully connected to current server\n";
-        }
+        },
 
+        [=](connect_as_backup, actor other_actor, int num_to_send) {
+            aout(self) << "Received other actor Can we send them a message?\n";
+            self->state.backup = other_actor;
+            self->send(self->state.backup, connect_as_backup_v, num_to_send);
 
-    };
-}
+        },
+
+        [=](connect_as_backup, int num_to_send) {
+            aout(self) << "Received message from the other actor\n";
+            aout(self) << "We Got the number " << num_to_send << std::endl;
+            std::this_thread::sleep_for(std::chrono::seconds(2));
+            num_to_send++;
+            self->send(self->state.backup, connect_as_backup_v, num_to_send);
+            
+        },
 
-behavior backup_server(stateful_actor<summa_backup_state>* self) {
-    aout(self) << "Published\n";
-    return {
-        [=] (connect_as_backup) {
 
-        }
     };
 }
 
+// behavior backup_server(stateful_actor<summa_backup_state>* self) {
+//     aout(self) << "Published\n";
+//     return {
+//         [=] (connect_as_backup) {
+
+//         }
+
+
+
+
+//     };
+// }
+
 
 
 
diff --git a/build/source/actors/summa_actor/summa_client.cpp b/build/source/actors/summa_actor/summa_client.cpp
index 05db5347540c50ccc3c9f77a43506baa5aeaa27e..c0a9f5d1831e18e6e68f7f06b58009c022c86b9a 100644
--- a/build/source/actors/summa_actor/summa_client.cpp
+++ b/build/source/actors/summa_actor/summa_client.cpp
@@ -18,7 +18,7 @@ behavior summa_client(stateful_actor<summa_client_state>* self, std::optional<st
         if(dm.source == self->state.current_server) {
             aout(self) << "*** Lost Connection to Server" << std::endl;
             self->state.current_server = nullptr;
-            self->become(unconnected(self));
+            // self->become(unconnected(self));
         }
     });
     return unconnected(self);
@@ -116,7 +116,13 @@ behavior running(stateful_actor<summa_client_state>* self, const actor& server_a
             self->state.current_batch.updateReadTime(read_time);
             self->state.current_batch.updateWriteTime(write_time);
 
-            self->send(server_actor, done_batch_v, self, self->state.client_id, self->state.current_batch);
+            if(self->state.current_server == nullptr) {
+                aout(self) << "Maybe We Should not Send this\n";
+            } else {
+                self->send(server_actor, done_batch_v, self, self->state.client_id, self->state.current_batch);
+
+            }
+
         },
 
         [=](heartbeat) {
diff --git a/build/source/actors/summa_actor/summa_server.cpp b/build/source/actors/summa_actor/summa_server.cpp
index def4f9efa9228a7390cbcda538a199d7f41641c6..0be313aff16675e3ec5dcc4614bf5f92ed87d7cf 100644
--- a/build/source/actors/summa_actor/summa_server.cpp
+++ b/build/source/actors/summa_actor/summa_server.cpp
@@ -20,11 +20,16 @@ behavior summa_server(stateful_actor<summa_server_state>* self, Distributed_Sett
     aout(self) << "Summa Server has Started \n";
     
     self->set_down_handler([=](const down_msg& dm) {
-        aout(self) << "Lost A Client\n";
+
+        if (dm.source == self->state.backup_server) {
+            aout(self) << "Lost Client 1\n";
+        }
+
+        if (dm.source == self->state.backup_server2) {
+            aout(self) << "Lost Client 2\n";
+        }
     });
     
-    
-    
     self->state.distributed_settings = distributed_settings;
     self->state.summa_actor_settings = summa_actor_settings; 
     self->state.file_access_actor_settings = file_access_actor_settings;
@@ -72,7 +77,15 @@ behavior summa_server(stateful_actor<summa_server_state>* self, Distributed_Sett
 
         [=](connect_as_backup, actor backup_server) {
             aout(self) << "Received Connection Request From a backup server\n";
-            self->state.backup_server = backup_server;
+            if (self->state.backup_server == nullptr) {
+                aout(self) << "Setup Backup Server\n";
+                self->state.backup_server = backup_server;
+            } else if (self->state.backup_server2 == nullptr) {
+                aout(self) << "Setup Backup Server 2\n";
+                self->state.backup_server2 = backup_server;
+                self->send(self->state.backup_server, connect_as_backup_v, self->state.backup_server2, 56);
+                self->send(self->state.backup_server2, connect_as_backup_v, self->state.backup_server, 89);
+            }
             self->monitor(backup_server);
             self->send(self->state.backup_server, connect_as_backup_v); // confirm connection
         },