     else
       playerid = @playerManager.getPlayerIdBySocket(socketId)
       ErrorManager.throw(ErrorManager.codes.possibleSubmitSolution, {}, "Client not in 'possible' list")
+    # If everyone has submitted their solutions, it's the end of round. Add up the scores for the round.
     if(@allSolutionsSent()) then @scoreAdder()
 
   # returns true if all players that believe a solution is possible have sent their solution

      # Give 40 seconds for the solutions turn
      @resetTurnTimer(Settings.submitTurnSeconds, turnEndCallback)

  submitImpossible: (clientId, turnEndCallback) ->
    @checkChallengeDecision()
    disagreedId = @playerManager.getPlayerIdBySocket(clientId) #The player id of the player who disagreed
    @state.impossiblePlayers.push(disagreedId)
    if(@allDecisionsMade())
      # Give 40 seconds for the solutions turn
      @resetTurnTimer(Settings.submitTurnSeconds, turnEndCallback)
      if(@state.possiblePlayers.length == 0)
        @scoreAdder()


  checkChallengeDecision:(clientId) ->
    if !@challengeMode
      ErrorManager.throw(ErrorManager.codes.submitNotChallengeMode, {}, "Can't submit opinion, not currently challenge mode")

    else
      clearInterval(@turnTimer)

  # For debug purposes - pause the timer for the current turn
  pauseTurnTimer: () ->
    # Make idempotent - only pause if game isn't already paused
    if !@pausedTime?
      @pausedTime = Date.now()
      clearInterval(@turnTimer)
    else
      console.log "Game already paused."

  # For debug purposes - resume a paused timer
  resumeTurnTimer: () ->
    @state.turnStartTime = Date.now()
    resumeDuration = @state.turnEndTime -  @pausedTime
