     "Handler that is called by Ring for all requests received from user(s)."
     [request]
     (println-and-flush "request URI: " (request :uri))
-    (let [uri (request :uri)]
+    (let [uri     (request :uri)
+          zw-mode (zw-mode? request)]
         (condp = uri
             "/favicon.ico"       (return-file "favicon.ico" "image/x-icon")
             "/bootstrap.min.css" (return-file "bootstrap.min.css" "text/css")
             "/smearch.css"       (return-file "smearch.css" "text/css")
             "/bootstrap.min.js"  (return-file "bootstrap.min.js" "application/javascript")
-            "/"                  (process-front-page request)
-            "/all-words"         (process-all-words request)
-            "/deleted-words"     (process-deleted-words request)
-            "/active-words"      (process-active-words  request)
+            "/"                  (process-front-page    request zw-mode)
+            "/all-words"         (process-all-words     request zw-mode)
+            "/deleted-words"     (process-deleted-words request zw-mode)
+            "/active-words"      (process-active-words  request zw-mode)
+            "/add-word"          (process-add-word      request)
             ;"/find-words"       (process-find-words    request)
             "/add-words"         (process-add-words     request)
-            "/users"             (process-user-list     request)
-            "/user"              (process-user-info     request)
+            "/users"             (process-user-list     request zw-mode)
+            "/user"              (process-user-info     request zw-mode)
             "/wordlist/json"     (process-wordlist-json request)
             "/wordlist/text"     (process-wordlist-text request)
             "/wordlist/xml"      (process-wordlist-xml  request)

        (println word)
        (println search-results)
        (if user-name
            (-> (http-response/response (html-renderer/render-front-page word user-name search-results message url-prefix))
                (http-response/set-cookie :user-name user-name {:max-age 36000000})
                (http-response/content-type "text/html"))
            (-> (http-response/response (html-renderer/render-front-page word user-name search-results message url-prefix))
                (http-response/content-type "text/html")))))

(defn process-front-page
    [request]
    (let [params         (:params request)
          word           (get params "word")
          search-results (if (not (empty? word)) (db-interface/read-words-for-pattern word))]
        (finish-processing request search-results nil)))

(defn store-words
    [words user-name]

        (xml/emit {:tag :whitelist :content (for [word words]
                                             {:tag :word :attrs {
                                                             :added-by     (:user word)
                                                             :date-time    (:datetime word)
                                                             :deleted      (:deleted word)
                                                             :description  (:description word)}
                                                             :content      [(:word word)]})})))

(defn process-wordlist-json
    [request]
