 (defn add-cards!
   "Add several cards to the application state"
   [cards]
-  (let [to-id-pair #(vector (:card-id %) %)]
+  (let [default-state {::show-details false}
+        to-gui-card #(vector (:card-id %) (merge % default-state))]
     (swap! app-state
-     #(update-in % [:cards] merge (map to-id-pair cards))
+     #(update-in % [:cards] merge (map to-gui-card cards))
   )))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

   }])

(defn render-card
  []
  (let [show-details (r/atom false) ; TODO - Extract show details in set of card-id
        toggle-details #(swap! show-details not)
        title-style #(if % :div.card__title--is-open :div.card__title)]
    (fn [card]
      [:div.card
       [:div {:style (card-side-color card)}]
       [(title-style @show-details) {:on-click toggle-details} (:title card)]
       (when @show-details
         [:div.card__details
          (:description card)
          [render-tasks card]
          [render-add-task card]
         ])
       ])
    ))

(defn render-list
  [status cards]
  [:div.list
   [:h1 (status->str status)]

  [cards]
  [:div.app
   (for [status [:backlog :under-dev :done]]
     ^{:key status} [render-column status cards])
  ])

(defn render-filter
