   [board point]
   (eduction
     (keep #(available-cells-by-dir board point %))
-    cst/directions))
+    (map #(partial walk-dir %) cst/directions)))
 
 
 ;; -----------------------------------------

  (or (nil? cell) (= cell :empty) (= cell :wall)))

(defn- walk-dir
  [[x y] [dx dy]]
  [(+ x dx) (+ y dy)])

(defn- available-cells-by-dir
  "Indicates the convertible cells when clicking at [x y]"  ;; TODO - Refactor & Test
  [board initial-coord direction]
  (loop [coord (walk-dir initial-coord direction)
         looser nil
         taken []]
    (let [cell (board/get-cell-at board coord)]

        (is-not-convertible? cell) nil                        ;; No move: reached end and only 1 type of cell
        (and looser (not= looser cell)) {:winner cell         ;; Who wins the cells
                                         :looser looser       ;; Who looses the cells
                                         :point init-coord    ;; The move performed
                                         :taken taken}        ;; The cells taken
        :else (recur
                (next-coord coord)
                cell
                (conj taken coord)))
      )))

(defn- available-conversions-at
