               (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

         (when-let [cost-str (pay state side card :credit (:cost card) extra-cost
                              (when-not no-additional-cost additional-cost))]
           (let [c (move state side (assoc card :seen true) :play-area)]
             (system-msg state side (if (= "" cost-str)
                                     (str "plays " title)
                                     (str "spends " cost-str " to play " title)))
             (trigger-event state side (if (= side :corp) :play-operation :play-event) c)
             (if (has? c :subtype "Current")
               (do (doseq [s [:corp :runner]]

                     (trash state side prev-card {:keep-server-alive true})))
                 (let [card-name (if (or (= :rezzed install-state) (= :face-up install-state) (:rezzed c))
                                   (:title card) "a card")]
                   (system-msg state side (str (build-spend-msg cost-str "install")
                                                card-name " in " server)))
                 (let [moved-card (move state side c slot)]
                   (trigger-event state side :corp-install moved-card)
                   (when (= (:type c) "Agenda")
