anchor.diff:        return false;
       }
   
  -    //TODO add validity check for payment path, if required
  -
       board.playCardToStation(loc, card, playedDir, player.playerNum);
   
       roundData[player.playerNum].deferred.remove(card);
   
       //update pot and player cash for card payment
  -    _handlePayment(card, player);
  +    _payConstructionFee(card, player);
       if(player.cash == 0){
         _endGame();
   
         return true;
       }
   
  -    //TODO handle connection fees
  +    _payConnectionFees(new PaymentPath.from(path), player);
   
       if(player.cash == 0){
         _endGame();
  
positive.code:       return;
      }
    }
  
    void _checkDeferred() {
      //remove players that were deferred this round
  
negative.code:     }
    }
  
    void _payConstructionFee(Card card, Player player) {
      if (card.isCap && pot > 0) {
        print("Card is cap, and pot has cash.");
        pot -= 1;
  