                      (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 (if (= "" cost-str) 
-                                                  "installs "
-                                                  (str "spends " cost-str " to install "))
-                                               card-name " in " server))
+                   (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")

              (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 ")) 
                                   title (when desc (str " to " desc))))))
              (when effect (effect state side c targets))
              (when end-turn

                   (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)
