   ([state side event target]
      (doseq [e (get-in @state [:events event])]
        (let [card (get-card state (:card e))]
-         (resolve-ability state (keyword (.toLowerCase (:side card))) (:ability e) card [target])))))
+         (resolve-ability state (to-keyword (:side card)) (:ability e) card [target])))))
 
 (defn card-init [state side card]
   (let [cdef (card-def card)

      false)))

(defn change [state side {:keys [key delta]}]
  (let [kw (keyword (.toLowerCase key))]
    (swap! state update-in [side kw] (partial + delta))
    (system-msg state side
                (str "sets " (.replace key "-" " ") " to " (get-in @state [side kw])


(defn in-play? [state card]
  (let [dest (when (= (:side card) "Runner")
               (get-in @state [:runner :rig (to-keyword (:type card))]))]
    (some #(= (:title %) (:title card)) dest)))

(defn runner-install [state side {:keys [title type cost memoryunits uniqueness] :as card}]
  (let [dest [:rig (to-keyword type)]]
    (when (and (or (not uniqueness) (not (in-play? state card)))
               (if-let [req (:req (card-def card))] (req state card) true)
               (pay state side :click 1 :credit cost :memory memoryunits))
