   [_ new-value {:keys [maze] :as state}]
   (let [{:keys [algorithm rows columns grid]} maze]
     new-value))
-
-(defmethod produce-maze-value :channel
-  [_ value _]
-  value)
 
 (defmethod produce-maze-value :default
   [_ form-value _]

        nil
        (dom/div
          nil
          (dom/span nil "Algorithm: ")
          (dom/select #js {:value algorithm
                           :onChange (partial modify :algorithm)}
                      (concat [(dom/option #js {:key ""} "")]
                              (map
                                (fn [name]
                                  (dom/option #js {:key name} name))
                                algorithms))))
        (dom/div
          nil
          (dom/span nil "Rows: ")
          (dom/input #js {:type "number"
                          :value rows
                          :min 2
                          :max 99
                          :style #js {:width "30px"}
                          :onInput (partial modify :rows)})
          (dom/span nil "Columns: ")
          (dom/input #js {:type "number"
                          :value columns
                          :min 2
                          :max 99
                          :style #js {:width "30px"}
                          :onInput (partial modify :columns)}))
        (dom/div
          nil
          (dom/span nil "Analysis: ")
          (dom/select #js {:value analysis
                           :onChange (partial modify :analysis)}
                      (map (fn [name] (dom/option #js {:key name} name)) analyses)))
        (when (contains? #{"distances" "path"} analysis)
          (dom/div
            nil
            (dom/span nil "Start Row: ")
            (dom/input #js {:type "number"
                            :value start-row
                            :min 0
                            :max (dec rows)
                            :style #js {:width "30px"}
                            :onInput (partial modify :start-row)})
            (dom/span nil "Start Column: ")
            (dom/input #js {:type "number"
                            :value start-col
                            :min 0
                            :max (dec columns)
                            :style #js {:width "30px"}
                            :onInput (partial modify :start-col)})))
        (when (= "path" analysis)
          (dom/div
            nil
            (dom/span nil "End Row: ")
            (dom/input #js {:type "number"
                            :value end-row
                            :min 0
                            :max (dec rows)
                            :style #js {:width "30px"}
                            :onInput (partial modify :end-row)})
            (dom/span nil "End Column: ")
            (dom/input #js {:type "number"
                            :value end-col
                            :min 0
                            :max (dec columns)
                            :style #js {:width "30px"}
                            :onInput (partial modify :end-col)})))
        (dom/div
          nil
          (dom/button #js {:disabled (not (ready-to-go maze))

          :columns 10
          :cell-size 10
          :grid nil

          :analysis "none"
          :start-row 0
