diff --git a/frontend/src/federation.js b/frontend/src/federation.js
index 90f3085..b91b5ea 100644
--- a/frontend/src/federation.js
+++ b/frontend/src/federation.js
@@ -6,7 +6,7 @@ class ServerSet {
         if (!unreachable_neighbors || typeof unreachable_neighbors.queryUnreachable !== 'function' || typeof unreachable_neighbors.unreachable !== 'function') {
             throw new Error('no unreachable_neighbors')
         }
-        this.servers = [... new Set(servers)] // deduplicate
+        this.servers = [...new Set(servers)] // deduplicate
         this.unreachable_neighbors = unreachable_neighbors;
     }
 
@@ -188,11 +188,27 @@ class ServerSetUnion {
         this.serverSets.push(serverset)
     }
 
+    async get(auth, target) {
+        try {
+            const ret = await this.serverSets.reduce(async (acc, serverset) => {
+                return acc.then(async (acc) => {
+                    return acc.concat(await serverset.get(auth, target))
+                })
+            }, Promise.resolve([]))
+            return ret
+        } catch (e) {
+            throw new Error('all servers failed')
+        }
+    }
+
     async post(auth, target, data) {
         try {
-            return await this.serverSets.reduce(async (acc, serverset) => {
-                return await serverset.post(auth, target, data)
-            }, Promise.resolve())
+            const ret = await this.serverSets.reduce(async (acc, serverset) => {
+                return acc.then(async (acc) => {
+                    return acc.concat(await serverset.post(auth, target, data))
+                })
+            }, Promise.resolve([]))
+            return ret
         } catch (e) {
             throw new Error('all servers failed')
         }
@@ -200,29 +216,12 @@ class ServerSetUnion {
 
     async patch(auth, target, data) {
         try {
-            return await this.serverSets.reduce(async (acc, serverset) => {
-                return await serverset.patch(auth, target, data)
-            }, Promise.resolve())
-        } catch (e) {
-            throw new Error('all servers failed')
-        }
-    }
-
-    async get(auth, target) {
-        try {
-            return await this.serverSets.reduce(async (acc, serverset) => {
-                return await serverset.get(auth, target)
-            }, Promise.resolve())
-        } catch (e) {
-            throw new Error('all servers failed')
-        }
-    }
-
-    async delete(auth, target) {
-        try {
-            return await this.serverSets.reduce(async (acc, serverset) => {
-                return await serverset.delete(auth, target)
-            }, Promise.resolve())
+            const ret = await this.serverSets.reduce(async (acc, serverset) => {
+                return acc.then(async (acc) => {
+                    return acc.concat(await serverset.patch(auth, target, data))
+                })
+            }, Promise.resolve([]))
+            return ret
         } catch (e) {
             throw new Error('all servers failed')
         }
@@ -230,9 +229,25 @@ class ServerSetUnion {
 
     async put(auth, target, data) {
         try {
-            return await this.serverSets.reduce(async (acc, serverset) => {
-                return await serverset.put(auth, target, data)
-            }, Promise.resolve())
+            const ret = await this.serverSets.reduce(async (acc, serverset) => {
+                return acc.then(async (acc) => {
+                    return acc.concat(await serverset.put(auth, target, data))
+                })
+            }, Promise.resolve([]))
+            return ret
+        } catch (e) {
+            throw new Error('all servers failed')
+        }
+    }
+
+    async delete(auth, target) {
+        try {
+            const ret = await this.serverSets.reduce(async (acc, serverset) => {
+                return acc.then(async (acc) => {
+                    return acc.concat(await serverset.delete(auth, target))
+                })
+            }, Promise.resolve([]))
+            return ret
         } catch (e) {
             throw new Error('all servers failed')
         }
diff --git a/frontend/src/store.js b/frontend/src/store.js
index 2b27fa0..29e6af3 100644
--- a/frontend/src/store.js
+++ b/frontend/src/store.js
@@ -126,7 +126,7 @@ export default createStore({
             if (domain === 'localhost')
                 return ['127.0.0.1:8000'];
             if (domain === 'example.com')
-                return ['10.23.42.128:8000','10.23.42.128:8000'];
+                return ['10.23.42.128:8000', '10.23.42.128:8000'];
             if (domain === 'example.jedi')
                 return ['10.23.42.128:8000'];
             if (domain === 'example2.com')
@@ -153,6 +153,8 @@ export default createStore({
                     const s = await dispatch('lookupServer', {username: friend.username})
                     servers.add(new ServerSet(s, state.unreachable_neighbors))
                 }
+                const home = await dispatch('getHomeServers')
+                servers.add(home)
                 return servers
             })()
             commit('setAllFriendsServers', promise)
diff --git a/frontend/src/views/Search.vue b/frontend/src/views/Search.vue
index a951ed6..658fb0d 100644
--- a/frontend/src/views/Search.vue
+++ b/frontend/src/views/Search.vue
@@ -6,7 +6,7 @@
                 <div class="row">
                     <div class="col-md-3">
                         <div class="card">
-                            <SearchBox @change="filterResults" />
+                            <SearchBox @change="" />
                         </div>
                     </div>
                     <div class="col-12">
@@ -78,12 +78,10 @@ export default {
     },
     methods: {
         ...mapActions(['fetchSearchResults']),
-        filterResults(query) {
-            this.localQuery = query;
-        }
     },
     async mounted() {
         this.fetchSearchResults({query: this.query}).then((results) => {
+            console.log(results);
             this.search_results = results;
         });
     }