contract PixelAuthority {

    /// @dev Emited when contract is upgraded
    event ContractUpgrade(address newContract);

    address public authorityAddress;
    uint public authorityBalance = 0;

    /// @dev Access modifier for authority-only functionality
    modifier onlyAuthority() {
        require(msg.sender == authorityAddress);
        _;
    }

    /// @dev Assigns a new address to act as the authority. Only available to the current authority.
    /// @param _newAuthority The address of the new authority
    function setAuthority(address _newAuthority) external onlyAuthority {
        require(_newAuthority != address(0));
        authorityAddress = _newAuthority;
    }

}
/// @title A facet of PixelCore that manages special access privileges.
/// @author Oliver Schneider <info@pixelcoins.io> (https://pixelcoins.io)
function setAuthority(address _newAuthority) external onlyAuthority {
    require(_newAuthority != address(0));
    authorityAddress = _newAuthority;
}

/// @dev Assigns a new address to act as the authority. Only available to the current authority.
/// @param _newAuthority The address of the new authority