                       :logged-in? false}
             :error   {:message nil}
             :info    {:message nil}
-            :app     {:loading? false}}))
+            :app     {:loading? false
+                      :progress {}}}))
 
 (declare get-pokemon-by-id)
 

(defmethod mutate 'user/logged-in
  [{:keys [state]} _ {:keys [status]}]
  {:action (fn [] (swap! state update-in [:user :logged-in?] (fn [] status)))})

(defonce reconciler
         (om/reconciler

  (get-in @app-state [:info :message]))


;;;; Status information
(defn get-progress-status
  "Return map containing progress information."
  []
  (get-in @app-state [:app :progress]))

(defn update-progress-status!
  "Receives a map containing information about the progress status, which are then stored in the app-state."
  [response]
  (om/transact! reconciler `[(status/progress {:status ~response})]))

;;;; State transitions
(defn update-pokemon!
  "Update pokemon based on API response."
