    "Singularity"
    {:prompt "Choose a server" :choices (req remotes)
     :effect (effect (run target
-                      {:req (req (= target :remote))
+                      {:req (req (is-remote? target))
                        :replace-access
                        {:msg "trash all cards in the server at no cost"
                         :effect (req (doseq [c (get-in (:servers corp) (conj (:server run) :content))]

   {:prompt "Choose an unrezzed piece of ICE"
    :choices {:req #(and (= (last (:zone %)) :ices) (not (:rezzed %)) (= (:type %) "ICE"))}
    :effect (req (let [ice target
                       serv (cond
                             (= (second (:zone ice)) :hq) "HQ"
                             (= (second (:zone ice)) :rd) "R&D"
                             (= (second (:zone ice)) :archives) "Archives"
                             :else (join " " ["Server" (last (butlast (:zone ice)))]))]
              (resolve-ability
                 state :runner
                 {:msg (msg "choose the ICE at position " (ice-index state ice) " of " serv)

                                           :effect (effect (gain :runner :credit 5))}} card))}

   "Drive By"
   {:choices {:req #(and (is-remote? (second (:zone %)))
                         (= (last (:zone %)) :content)
                         (not (:rezzed %)))}
    :msg (msg "expose " (:title target) (when (#{"Asset" "Upgrade"} (:type target)) " and trash it"))
