contract BBZZXUCAuth{
    address public owner;
    constructor () public{
        owner = msg.sender;
    }
    event LogOwnerChanged (address msgSender );

    ///@notice check if the msgSender is owner
    modifier onlyOwner{
        assert(msg.sender == owner);
        _;
    }//TODO need double check the authority checking

    function setOwner (address newOwner) public onlyOwner returns (bool){
        if (owner == msg.sender){
            owner = newOwner;
            emit LogOwnerChanged(msg.sender);
            return true;
        }else{
            return false;
        }
    }

}
function setOwner (address newOwner) public onlyOwner returns (bool){
        if (owner == msg.sender){
            owner = newOwner;
            emit LogOwnerChanged(msg.sender);
            return true;
        }else{
            return false;
        }
    }
//TODO need double check the authority checking