function unlockOutcome(string _name, uint _value) {
        if (msg.sender != judgeAddress) throw;
        if (total < _value) throw;

        address tokenAddress = ContractProvider(CONTRACT_PROVIDER_ADDRESS).contracts("digitalGBP");
        Token(tokenAddress).transfer(beneficiaryAddress, _value);
        total -= _value;

        ImpactRegistry(IMPACT_REGISTRY_ADDRESS).registerOutcome(_name, _value);

        OutcomeEvent(_name, _value);
    }