                  :effect (req (swap! state assoc-in [:run :position] 0) (derez state side card))}]}
 
    "Changeling"
-   (let [ab {:req (req (= (:cid card) (:cid target)))
-             :effect (req (if (odd? (:advance-counter (get-card state card)))
-                            (morph state side card "Sentry" "Barrier")
-                            (morph state side card "Barrier" "Sentry")))}]
-     {:advanceable :always
-      :effect (req (if (odd? (get card :advance-counter 0))
-                     (morph state side card "Sentry" "Barrier")
-                     (morph state side card "Barrier" "Sentry")))
-      :abilities [end-the-run]
-      :events {:advance ab :advancement-placed ab}})
-
+   (morph-ice "Barrier" "Sentry" end-the-run)
+   
    "Checkpoint"
    {:effect (effect (gain :bad-publicity 1) (system-msg "takes 1 bad publicity"))
     :abilities [(trace-ability 5 {:label "Do 3 meat damage when this run is successful"

        rezzed-next? #(and (rezzed? %) (has-subtype? % "NEXT"))]
    (reduce (fn [c server] (+ c (count (filter rezzed-next? (:ices server))))) 0 servers)))


;;;; Card definitions
(def cards-ice

                (do-net-damage 2)]}

   "Wendigo"
   (morph-ice "Code Gate" "Barrier" {:msg "prevent the Runner from using a chosen program for the remainder of this run"})

   "Whirlpool"
   {:abilities [{:msg "prevent the Runner from jacking out"
