anchor.diff:    Stopwatch _stopWatch = new Stopwatch();
   
     Timer _challengeTimer;
  +
  +  Timer _pendingChallengeTimer;
   
     ChessBoard _chessBoard;
   
  
positive.code:   }
  
    void startChallenge() {
      _webSocket.send(Messages.CHALLENGE);
      async((_) => $['challenge_pending'].show());
    }
  
negative.code:       print('Pending challenge message received');
        String msg = message.substring(Messages.PENDINGCHALLENGE.length);
        int index = msg.indexOf(":");
        int seconds = int.parse(msg.substring(0, index));
  
        _updateChallengeUsers(msg.substring(index + 1));
  
        startChallengeStatus = 'A new challenge is starting in ${seconds} seconds...';
        startChallengeBtnLabel = 'Join';
  
        _pendingChallengeTimer =
            new Timer.periodic(new Duration(milliseconds: 1000), (timer) {
          seconds--;
          if (seconds == 0) {
            timer.cancel();
          } else {
            startChallengeStatus =
                'Challenge is starting in ${seconds} seconds...';
          }
        });
  
      } else if (message.startsWith(Messages.AVAILABLEUSERS)) {
        var users = message.substring(Messages.AVAILABLEUSERS.length);
        print('Available users message received ${users}');
  