       [(int match[1]), (int match[2])]
     setup: (done) -> done()
     play: ->
-      unplayable()
-      markWins()
       return if checkGameOver()
       playableClassName = playable()
       $ ".#{playableClassName}"

  createPlayerO = -> computerPlayer()

  # player :: {
  #   setup : (done: None -> None) -> None
  #   play : None -> None
  #   end? : None -> None
  #   toString : None -> Str
  # }

  next = ->
    player = if game.nextPlayer is X then playerX else playerO
    player.play()


    playerX.setup -> playerO.setup -> next()

  teardown = ->
    playerX?.teardown?()
    playerO?.teardown?()
    hideSpinner()
    $ '.tic-tac-toe'
      .removeClass 'x-won-board'
