       (when ?reply-fn (?reply-fn {:ok true})))))
 
 (defmethod event-msg-handler :user/set-preferences
-  [{:as ev-msg :keys [event id ?data ring-req ?reply-fn send-fn user-id]}]
+  [{:as ev-msg :keys [?data ?reply-fn user-id]}]
   (doseq [[k v] ?data]
     (db/user-set-preference! user-id k v))
   (when ?reply-fn (?reply-fn :braid/ok)))
 
 (defmethod event-msg-handler :chat/hide-thread
-  [{:as ev-msg :keys [event id ?data ring-req ?reply-fn send-fn user-id]}]
+  [{:as ev-msg :keys [?data user-id]}]
   (db/user-hide-thread! user-id ?data)
   (chsk-send! user-id [:chat/hide-thread ?data]))
 
 (defmethod event-msg-handler :chat/unsub-thread
-  [{:as ev-msg :keys [event id ?data ring-req ?reply-fn send-fn user-id]}]
+  [{:as ev-msg :keys [?data user-id]}]
   (db/user-unsubscribe-from-thread! user-id ?data)
   (chsk-send! user-id [:chat/hide-thread ?data]))
 
 (defmethod event-msg-handler :chat/mark-thread-read
-  [{:as ev-msg :keys [ring-req ?data user-id]}]
+  [{:as ev-msg :keys [?data user-id]}]
   (db/update-thread-last-open! ?data user-id))
 
 (defmethod event-msg-handler :chat/create-tag
-  [{:as ev-msg :keys [event id ?data ring-req ?reply-fn send-fn user-id]}]
+  [{:as ev-msg :keys [?data ?reply-fn user-id]}]
   (if (db/user-in-group? user-id (?data :group-id))
     (if (valid-tag-name? (?data :name))
       (let [new-tag (db/create-tag! (select-keys ?data [:id :name :group-id]))

                              [:group/new-admin [group-id new-admin-id]]))))

(defmethod event-msg-handler :chat/remove-from-group
  [{:as ev-msg :keys [event id ?data ring-req ?reply-fn send-fn user-id]}]
  (let [{group-id :group-id to-remove-id :user-id} ?data]
    (when (and group-id to-remove-id
            (or (= to-remove-id user-id)

                  user-id (?data :name) (?data :group-id))))

(defmethod event-msg-handler :chat/set-tag-description
  [{:as ev-msg :keys [?data ?reply-fn user-id]}]
  (let [{:keys [tag-id description]} ?data]
    (when (and tag-id description)
      (let [group-id (db/tag-group-id tag-id)]
