function is intentionally internal because we do not check conditions here
    function transferTokensToContributor(uint idx) private returns (bool) {
        if (payments[paymentAddresses[idx]].totalReceiveTokens > 0) {
            
            uint tokenToSend = payments[paymentAddresses[idx]].totalReceiveTokens;
            payments[paymentAddresses[idx]].totalReceiveTokens = 0;
            
            
            require(tokensAwardedForSale >= tokenToSend);
            tokensAwardedForSale -= tokenToSend;
            
            bool result = tokenWallet.transfer(paymentAddresses[idx], tokenToSend);
            
            require(result == true);
            Distribute(paymentAddresses[idx], tokenToSend);
        }
        return true;

    }