diff --git a/src/clientfactory.ts b/src/clientfactory.ts
index 84bebbd9aac950fe1a13a51e81a89a830a5cec08..18c8a2e6dcba61e9504b54e865585a3f741d75e1 100644
--- a/src/clientfactory.ts
+++ b/src/clientfactory.ts
@@ -65,7 +65,9 @@ export class DiscordClientFactory {
 
         await client.login(token);
         const id = client.user.id;
-        client.destroy();
+        client.destroy().catch(() => {
+            log.warn("Failed to destroy client ", id);
+        });
         return id;
     }
 
@@ -73,7 +75,7 @@ export class DiscordClientFactory {
         if (userId === null) {
             return this.botClient;
         }
-        
+
         if (this.clients.has(userId)) {
             log.verbose("Returning cached user client for", userId);
             return this.clients.get(userId) as DiscordClient;
diff --git a/src/discordas.ts b/src/discordas.ts
index e7f6db7569db71669e700cf10f660118601fff5d..6e28a0493c3f2a248c26b52fb200374b122790a5 100644
--- a/src/discordas.ts
+++ b/src/discordas.ts
@@ -94,9 +94,12 @@ async function run(port: number, fileConfig: DiscordBridgeConfig) {
                 } catch (err) { log.error("Exception thrown while handling \"onAliasQuery\" event", err); }
             },
             onEvent: async (request) => {
-                const done = function (resolve, reject) {
-                    (this as Promise<any>).then(resolve);
-                    (this as Promise<any>).then(reject);
+                // tslint:disable-next-line no-any
+                const done = function(resolve: (res: any) => void, reject: (err: Error) => void) {
+                    // tslint:disable-next-line no-invalid-this no-floating-promises
+                    (this as Promise<{}>).then(resolve);
+                    // tslint:disable-next-line no-invalid-this no-floating-promises
+                    (this as Promise<{}>).then(reject);
                 };
                 try {
                     // Build our own context.
@@ -115,8 +118,8 @@ async function run(port: number, fileConfig: DiscordBridgeConfig) {
 
                     await request.outcomeFrom({
                         done,
-                        ...callbacks.onEvent(request, context)
-                    } as IRequestPromise<any>);
+                        ...callbacks.onEvent(request, context),
+                    } as IRequestPromise<{}>);
                 } catch (err) {
                     log.error("Exception thrown while handling \"onEvent\" event", err);
                     await request.outcomeFrom({done, ...Promise.reject("Failed to handle")});
diff --git a/src/util.ts b/src/util.ts
index fd3790dd7fe84fdaa88c5594e950e2689a013071..96ab13dcdc95ea44fad10a8bccf66ba2b7a01034 100644
--- a/src/util.ts
+++ b/src/util.ts
@@ -52,7 +52,7 @@ export interface IPatternMap {
 }
 
 export interface IRequestPromise<T> extends PromiseLike<T> {
-    done (resolve: (msg: T) => {}, reject: (err: Error) => {}): void;
+    done(resolve: (msg: T) => {}, reject: (err: Error) => {}): void;
 }
 
 export class Util {
diff --git a/test/test_discordbot.ts b/test/test_discordbot.ts
index dc3b79f9bc8e574c4d8344e7183320ffc115753b..4730603bdd0f634e0e4dee54049a9a3f1986598e 100644
--- a/test/test_discordbot.ts
+++ b/test/test_discordbot.ts
@@ -65,11 +65,10 @@ const modDiscordBot = Proxyquire("../src/bot", {
     "./clientfactory": require("./mocks/discordclientfactory"),
     "./util": {
         Util: {
-            AsyncForEach: Util.AsyncForEach,
+            ...Util,
             UploadContentFromUrl: async () => {
                 return {mxcUrl: "uploaded"};
             },
-            DelayedPromise: Util.DelayedPromise,
         },
     },
 });
diff --git a/test/test_util.ts b/test/test_util.ts
index 45c39b16755a0869393c7c877f18bb3f61d29cc6..17664269950452f36138dacec1f8ad3e0ce13a97 100644
--- a/test/test_util.ts
+++ b/test/test_util.ts
@@ -181,9 +181,10 @@ describe("Util", () => {
     });
     describe("DelayedPromise", () => {
         it("delays for some time", async () => {
+            const DELAY_FOR = 250;
             const t = Date.now();
-            await Util.DelayedPromise(250);
-            expect(Date.now()).to.be.greaterThan(t + 249);
+            await Util.DelayedPromise(DELAY_FOR);
+            expect(Date.now()).to.be.greaterThan(t + DELAY_FOR - 1);
         });
     });
 });