          Args:  additional args specific for function"
   [game-map player-key card-pos & args]
   (-> game-map
+      (delete-all-messages)
       ;; TODO validate such card is present
       (#(apply apply-card % player-key (get-card game-map player-key card-pos) args))
       ;; delete card from player
       (delete-card player-key card-pos)
-      ;; (log-message (str player-key " played " (get-card game-map player-key card-pos)))
+      (log-message (str player-key " played " (get-card game-map player-key card-pos)))
       
       (check-for-win)
       ;; log winner
-      ;; (#(let [winner (:win %)]
-      ;;     (cond
-      ;;      (= winner :draw) (log-message % "Draw!")
-      ;;      winner (log-message % (str "Winner is " winner))
-      ;;      :else %)))
+      (#(let [winner (:win %)]
+          (cond
+           (= winner :draw) (log-message % "Draw!")
+           winner (log-message % (str "Winner is " winner))
+           :else %)))
       ))
 
 


(defn end-turn-for-player [game]
  (-> game
      (assoc :current-turn (get-opponent game (:current-turn game)))
      (update-in [:turn-ends] inc)))

(defn- decrement-duration-for-player [game player]

    :turn 1
    :messages []}
   (log-message "Game started!")
   (log-message (str p1 " vs " p2))
   (#(log-message % (str (:current-turn %)" moves")))))

(defn get-game-players [game]
  (keys (:players game)))
