               (when msg
                 (let [desc (if (string? msg) msg (msg state side card targets))]
                   (system-msg state (to-keyword (:side card))
-                              (str (if (= "" cost-str)
-                                       "uses "
-                                       (str "spends " cost-str " to use ")) 
+                              (str (build-spend-msg cost-str "use")
                                    title (when desc (str " to " desc))))))
               (when effect (effect state side c targets))
               (when end-turn

                 (system-msg state side "installs a card facedown" )
               (if custom-message
                 (system-msg state side custom-message)
                 (system-msg state side (str (if (= "" cost-str) "installs " (str "spends " cost-str " to install ")) title
                                          (when host-card (str " on " (:title host-card)))
                                          (when no-cost " at no cost")))))
               (trigger-event state side :runner-install installed-card)

                   (when (= install-state :rezzed)
                     (rez state side moved-card {:no-cost true}))
                   (when (= install-state :face-up)
                     (card-init state side (assoc (get-card state moved-card) :rezzed true) false))))))))))

(defn play [state side {:keys [card server]}]
  (case (:type card)
