         (loc/set-location app (:id v)))
       (.back js/history))))
 
-(defn selected-players [report-match]
-  (let [paths (for [team   [:team1 :team2]
-                    player [:player1 :player2]]
-                [team player])]
-    (->> paths
-         (map (fn [p] (get-in report-match p)))
+(defn selected-players [team other-team]
+  (let [players (for [t      [team other-team]
+                      player [:player1 :player2]]
+                  (get t player))]
+    (->> players
          (filter identity)
          set)))
-
-(defn- render-players-select [report-match players selected-player-path change-ch]
-  (let [selected-player  (get-in report-match selected-player-path)
-        other-selected   (disj (selected-players report-match) selected-player)
-        player-lookup    (group-by :id players)
-        possible-options (->> players
-                              (filter (complement (partial contains? other-selected))))]
-    [:select.form-control
-     {:value     (or (:id selected-player) "nil")
-      :on-change (fn [e]
-                   (let [player-id (-> e .-target .-value uuid/make-uuid-from)
-                         player    (first (get player-lookup player-id))]
-                     (put! change-ch player)))}
-     [:option {:value "nil" :disabled "disabled"} "Pick a player"]
-     (map (fn [{:keys [id name]}]
-            [:option {:value id} name])
-          possible-options)]))
 
 (defn team-score-component [team owner {:keys [score-ch]}]
   (reify

          (update-score! report-match other other-score score))))))

(defn handle-player-update [report-match path player]
  (debug "handle update" path player)
  (om/update! @report-match path player))

(defn report-match-component [{:keys [active-players report-match] :as app} owner]
  (reify

                                           :placeholder "0"
                                           :input-props {:type "number"}}})]]))))

(defn- render-players-select [{:keys [team other-team active-players]}
                              selected-player-path
                              change-ch]
  (let [selected-player  (get-in team selected-player-path)
        other-selected   (disj (selected-players team other-team) selected-player)
        possible-options (->> active-players
                              (filter (complement (partial contains? other-selected))))]
    [:select.form-control
     {:value     (or (:id selected-player) "nil")
      :on-change (fn [e]
                   (let [player-lookup (group-by :id active-players)
                         player-id     (-> e .-target .-value uuid/make-uuid-from)
                         player        (first (get player-lookup player-id))]
                     (put! change-ch player)))}
     [:option {:value "nil" :disabled "disabled"} "Pick a player"]
     (map (fn [{:keys [id name]}]
            [:option {:value id} name])
          possible-options)]))

(defn team-player-component [{:keys [team other-team active-players player-num] :as teams}
                             owner
                             {:keys [change-ch]}]
  (reify
    om/IRender
    (render [_]
