function claimPrizes(uint256 _matchId, uint _homeTeamScore, uint _awayTeamScore, uint _bettingPrice) public returns (bool) {
        uint totalNumBetters = matchBettingInfo[_matchId].length;  
        uint numOfBetters = 0;
        uint numOfWinners = 0;
        uint256 winningPrize = 0;
        uint commissionToOwner = 0;  
        bool result = checkPrizeAlreadyReceived(msg.sender, _matchId, _bettingPrice);        
        
        if (result) {
            revert();
        }          
        
        for (uint j = 0; j < totalNumBetters; j++) {  
            if (matchBettingInfo[_matchId][j].bettingPrice == _bettingPrice) {
                numOfBetters++;
                if (matchBettingInfo[_matchId][j].homeTeamScore == _homeTeamScore && matchBettingInfo[_matchId][j].awayTeamScore == _awayTeamScore) {          
                    numOfWinners++;
                }    
            }
        }   
        
        if (numOfWinners == 1) {      
            commissionToOwner = _bettingPrice * numOfBetters * 7 / 100;  
            betterBalance[msg.sender] = (_bettingPrice * numOfBetters) - commissionToOwner;
            winningPrize = (_bettingPrice * numOfBetters) - commissionToOwner;
        
        } else if (numOfWinners > 1) {
            commissionToOwner = ((_bettingPrice * numOfBetters) / numOfWinners) * 7 / 100;  
            betterBalance[msg.sender] = ((_bettingPrice * numOfBetters) / numOfWinners) - commissionToOwner;
            winningPrize = ((_bettingPrice * numOfBetters) / numOfWinners) - commissionToOwner;   
        }
    
        sendCommissionToOwner(commissionToOwner);
        withdraw();
        afterClaim(_matchId, _bettingPrice, winningPrize, numOfWinners, numOfBetters);
    
        return true;
    }