diff --git a/app/model/Hub.js b/app/model/Hub.js
index 558fefab963c645d371f36af6f92382321ae6802..c630a028b87f2181cfb20ebeb71a76b0d2d42a50 100644
--- a/app/model/Hub.js
+++ b/app/model/Hub.js
@@ -39,39 +39,23 @@ class Hub {
     let indexLambda = index.bind(this)
     let unindexLambda = unindex.bind(this)
 
-    this.wait = (id, locations) => {
-      let rejectCallback = null
-
-      let promise = (async () => {
-        let promise = new Promise((resolve, reject) => {
-          this.drivers[id] = {
-            resolve: resolve,
-            reject: reject
-          }
-
-          // Keep reject callback.
-          rejectCallback = reject
-
-          // Index locations.
-          indexLambda(id, locations)
-        })
-
-        try {
-          let userId = await promise
-          return userId
-        } finally {
-          // Remove indexed locations.
-          unindexLambda(id, locations)
+    this.waitAsync = async (id, locations) => {
+      let promise = new Promise((resolve, reject) => {
+        this.drivers[id] = {
+          resolve: resolve,
+          reject: reject
         }
-      })()
 
-      return {
-        promise: promise,
+        // Index locations.
+        indexLambda(id, locations)
+      })
 
-        reject (err) {
-          rejectCallback(err)
-        }
-      }
+      let userId = await promise
+
+      // Remove indexed locations.
+      unindexLambda(id, locations)
+
+      return userId
     }
   }
 
@@ -82,6 +66,10 @@ class Hub {
   pick (id, userId) {
     this.drivers[id].resolve(userId)
   }
+
+  reject (id, reason) {
+    this.drivers[id].reject(reason)
+  }
 }
 
 module.exports = Hub