function executeProposal(uint proposalNumber, bytes transactionBytecode)
        public
        notSelf
    {
        Proposal storage p = proposals[proposalNumber];

        
        require((now >= p.votingDeadline) && !p.finalized && p.proposalHash == keccak256(p.recipient, p.amount, transactionBytecode));

        
        var ( yea, nay, quorum ) = countVotes(proposalNumber);

        
        require(quorum >= minimumQuorum);
        
           
        p.finalized = true;

        if (yea > nay) {
            
            p.proposalPassed = true;

            
            require(p.recipient.call.value(p.amount)(transactionBytecode));

        } else {
            
            p.proposalPassed = false;
        }

        
        ProposalTallied(proposalNumber, yea, nay, quorum, p.proposalPassed);
    }