diff --git a/src/metabase/db.clj b/src/metabase/db.clj
index 492594f028863afeb2ee914fbf13e8f7093853f3..ab88e888c4fe2b77a9162186df45cc30902e3374 100644
--- a/src/metabase/db.clj
+++ b/src/metabase/db.clj
@@ -3,7 +3,7 @@
   (:require [clojure.java.jdbc :as jdbc]
             [clojure.tools.logging :as log]
             (clojure [set :as set]
-                     [string :as str])
+                     [string :as s])
             [environ.core :refer [env]]
             (korma [core :as k]
                    [db :as kdb])
@@ -53,8 +53,8 @@
   "Connection details for Korma / JDBC."
   (delay (let [details @db-connection-details]
            (case (config/config-kw :mb-db-type)
-             :h2       (kdb/h2 (assoc details :naming {:keys   str/lower-case
-                                                       :fields str/upper-case}))
+             :h2       (kdb/h2 (assoc details :naming {:keys   s/lower-case
+                                                       :fields s/upper-case}))
              :postgres (kdb/postgres (assoc details :db (:dbname details)))))))
 
 
diff --git a/src/metabase/driver.clj b/src/metabase/driver.clj
index 1a6867d3691a89c48f5ed46ddf6c085dba6a28b5..d44480a9e3ba9b2151060e59296f18712492fdab 100644
--- a/src/metabase/driver.clj
+++ b/src/metabase/driver.clj
@@ -2,7 +2,7 @@
   (:require clojure.java.classpath
             [clojure.tools.logging :as log]
             [medley.core :as m]
-            [metabase.db :refer [exists? ins sel upd]]
+            [metabase.db :refer [ins sel upd]]
             (metabase.driver [interface :as i]
                              [query-processor :as qp])
             (metabase.models [database :refer [Database]]
diff --git a/src/metabase/events.clj b/src/metabase/events.clj
index 42b5e84cd7dd56b2ff770a57dfb58e79d1234ce1..60c569f48e1dbbb7c683224689fa05e480b3dcfd 100644
--- a/src/metabase/events.clj
+++ b/src/metabase/events.clj
@@ -21,19 +21,16 @@
   (atom nil))
 
 (defn- find-and-load-event-handlers
-  "Search Classpath for namespaces that start with `metabase.events.`, then `require` them so initialization can happen."
+  "Search Classpath for namespaces that start with `metabase.events.`, and call their `events-init` function if it exists."
   []
-  (->> (ns-find/find-namespaces (clojure.java.classpath/classpath))
-       (filter (fn [ns-symb]
-                 (re-find #"^metabase\.events\." (name ns-symb))))
-       set
-       (map (fn [events-ns]
-              (log/info "\tloading events namespace: " events-ns)
-              (require events-ns)
-              ;; look for `events-init` function in the namespace and call it if it exists
-              (when-let [init-fn (ns-resolve events-ns 'events-init)]
-                (init-fn))))
-       dorun))
+  (doseq [events-ns (->> (ns-find/find-namespaces (clojure.java.classpath/classpath))
+                         (filter (fn [ns-symb]
+                                   (re-find #"^metabase\.events\." (name ns-symb)))))]
+    (log/info "\tloading events namespace: " events-ns)
+    (require events-ns)
+    ;; look for `events-init` function in the namespace and call it if it exists
+    (when-let [init-fn (ns-resolve events-ns 'events-init)]
+      (init-fn))))
 
 (defn initialize-events!
   "Initialize the asynchronous internal events system."
diff --git a/src/metabase/models/common.clj b/src/metabase/models/common.clj
index 61dfbf8c19892b6e6bb42e6890e0582a1da3f7a2..fa922e760cd0aaba1f0d4095f3b78037c7e60338 100644
--- a/src/metabase/models/common.clj
+++ b/src/metabase/models/common.clj
@@ -1,7 +1,5 @@
 (ns metabase.models.common
-  (:require [clojure.string :as s]
-            [metabase.api.common :refer [*current-user* *current-user-id* check]]
-            [metabase.util :as u]))
+  (:require [clojure.string :as s]))
 
 (def ^:const timezones
   ["GMT"
diff --git a/src/metabase/models/setting.clj b/src/metabase/models/setting.clj
index 34ee0564b1b3788cd991ae8c2663648f2829a500..ccca73a2de9b1a8a0d440465e5968df907255c5f 100644
--- a/src/metabase/models/setting.clj
+++ b/src/metabase/models/setting.clj
@@ -1,7 +1,6 @@
 (ns metabase.models.setting
   (:refer-clojure :exclude [get set])
-  (:require [clojure.core.match :refer [match]]
-            [clojure.string :as s]
+  (:require [clojure.string :as s]
             [environ.core :as env]
             [korma.core :as k]
             [metabase.config :as config]
@@ -9,7 +8,8 @@
             [metabase.models [common :as common]
                              [interface :refer :all]]
             [metabase.setup :as setup]
-            [metabase.util :as u]))
+            [metabase.util :as u]
+            [metabase.util.password :as password]))
 
 ;; Settings are a fast + simple way to create a setting that can be set
 ;; from the SuperAdmin page. They are saved to the Database, but intelligently
@@ -153,18 +153,18 @@
          (sort-by :key))))
 
 (defn public-settings
-  "Return a simple map of key/value pairs which represent the public settings for the application."
+  "Return a simple map of key/value pairs which represent the public settings for the front-end application."
   []
   {:ga_code               "UA-60817802-1"
    :intercom_code         "gqfmsgf1"
-   :password_complexity   (metabase.util.password/active-password-complexity)
+   :password_complexity   (password/active-password-complexity)
    :setup_token           (setup/token-value)
    :timezones             common/timezones
    :version               (config/mb-version-info)
    ;; all of these values are dynamic settings controlled at runtime
    :anon_tracking_enabled (= "true" (get :anon-tracking-enabled))
    :site_name             (get :site-name)
-   :email_configured      (not (clojure.string/blank? (get :email-smtp-host)))})
+   :email_configured      (not (s/blank? (get :email-smtp-host)))})
 
 ;; # IMPLEMENTATION
 
diff --git a/src/metabase/routes.clj b/src/metabase/routes.clj
index 5f9c1d3a0d0da3c61bd869582b96e2c02fee995b..984f8a59e7da95197145224653402b99a0a79b32 100644
--- a/src/metabase/routes.clj
+++ b/src/metabase/routes.clj
@@ -6,22 +6,15 @@
             [ring.util.response :as resp]
             [stencil.core :as stencil]
             [metabase.api.routes :as api]
-            (metabase.models common
-                             [setting :as setting])
-            [metabase.util :as u]
-            metabase.util.password))
+            [metabase.models.setting :as setting]))
 
-(def ^:private ^:const date-format-rfc2616
-  "Java SimpleDateFormat representing rfc2616 style date used in http headers."
-  "EEE, dd MMM yyyy HH:mm:ss zzz")
-
-(defn- index [request]
+(defn- index [_]
   (-> (io/resource "frontend_client/index.html")
       slurp
       (stencil/render-string {:bootstrap_json (json/generate-string (setting/public-settings))})
       resp/response
       (resp/content-type "text/html")
-      (resp/header "Last-Modified" (u/now-with-format date-format-rfc2616))))
+      (resp/header "Last-Modified" "{now} GMT")))
 
 ;; Redirect naughty users who try to visit a page other than setup if setup is not yet complete
 (defroutes routes
diff --git a/test/metabase/api/setup_test.clj b/test/metabase/api/setup_test.clj
index 42c947c52775080adb7d3563b35a9b99f4fb9ba3..9daf4c723af79bceba21440654c7e25b5a3f77d9 100644
--- a/test/metabase/api/setup_test.clj
+++ b/test/metabase/api/setup_test.clj
@@ -12,14 +12,13 @@
 
 ;; ## POST /api/setup/user
 ;; Check that we can create a new superuser via setup-token
-(let [setup-token (setup/token-create)
-      user-name (random-name)]
+(let [user-name (random-name)]
   (expect-eval-actual-first
     (match-$ (->> (sel :one User :email (str user-name "@metabase.com"))
                (:id)
                (sel :one Session :user_id))
       {:id $id})
-    (let [resp (http/client :post 200 "setup" {:token setup-token
+    (let [resp (http/client :post 200 "setup" {:token (setup/token-create)
                                                :prefs {:site_name "Metabase Test"}
                                                :user  {:first_name user-name
                                                        :last_name  user-name