> For the complete documentation index, see [llms.txt](https://docs.moneyonchain.com/main-rbtc-contract/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.moneyonchain.com/main-rbtc-contract/smart-contracts/abis-documentation/governed.md).

# Governed

View Source: [moc-governance/contracts/Governance/Governed.sol](https://github.com/money-on-chain/main-RBTC-contract/blob/master-gitbook/moc-governance/contracts/Governance/Governed.sol)

**↗ Extends:** [**Initializable**](/main-rbtc-contract/smart-contracts/abis-documentation/initializable.md) **↘ Derived Contracts:** [**CommissionSplitter**](https://github.com/money-on-chain/main-RBTC-contract/blob/master-gitbook/docs/abis/CommissionSplitter.md)**,** [**MoCBucketContainer**](/main-rbtc-contract/smart-contracts/abis-documentation/mocbucketcontainer.md)**,** [**MoCEMACalculator**](/main-rbtc-contract/smart-contracts/abis-documentation/mocemacalculator.md)**,** [**MoCInrate**](/main-rbtc-contract/smart-contracts/abis-documentation/mocinrate.md)**,** [**MoCInrateEvents**](https://github.com/money-on-chain/main-RBTC-contract/blob/master-gitbook/docs/abis/MoCInrateEvents.md)**,** [**MoCInrateStructs**](https://github.com/money-on-chain/main-RBTC-contract/blob/master-gitbook/docs/abis/MoCInrateStructs.md)**,** [**MoCSettlement**](/main-rbtc-contract/smart-contracts/abis-documentation/mocsettlement.md)**,** [**MoCSettlementEvents**](https://github.com/money-on-chain/main-RBTC-contract/blob/master-gitbook/docs/abis/MoCSettlementEvents.md)**,** [**MoCVendors**](/main-rbtc-contract/smart-contracts/abis-documentation/mocvendors.md)**,** [**MoCVendorsEvents**](https://github.com/money-on-chain/main-RBTC-contract/blob/master-gitbook/docs/abis/MoCVendorsEvents.md)**,** [**Stoppable**](/main-rbtc-contract/smart-contracts/abis-documentation/stoppable.md)**,** [**UpgradeDelegator**](/main-rbtc-contract/smart-contracts/abis-documentation/upgradedelegator.md)

**Governed** - version: 0.1.12

Base contract to be inherited by governed contractsThis contract is not usable on its own since it does not have any *productive useful* behaviour The only purpose of this contract is to define some useful modifiers and functions to be used on the governance aspect of the child contract

## Contract Members

**Constants & Variables**

```js
contract IGovernor public governor;
```

***

```js
string private constant NOT_AUTHORIZED_CHANGER;
```

***

```js
uint256[50] private upgradeGap;
```

***

## Modifiers

* [onlyAuthorizedChanger](#onlyauthorizedchanger)

### onlyAuthorizedChanger

Modifier that protects the functionYou should use this modifier in any function that should be called through the governance system

```js
modifier onlyAuthorizedChanger() internal
```

**Arguments**

## Functions

* [initialize(IGovernor \_governor)](#initialize)
* [changeIGovernor(IGovernor newIGovernor)](#changeigovernor)

### initialize

Initialize the contract with the basic settingsThis initialize replaces the constructor but it is not called automatically. It is necessary because of the upgradeability of the contracts

```js
function initialize(IGovernor _governor) public nonpayable initializer 
```

**Arguments**

| Name       | Type      | Description      |
| ---------- | --------- | ---------------- |
| \_governor | IGovernor | Governor address |

### changeIGovernor

Change the contract's governor. Should be called through the old governance system

```js
function changeIGovernor(IGovernor newIGovernor) public nonpayable onlyAuthorizedChanger 
```

**Arguments**

| Name         | Type      | Description          |
| ------------ | --------- | -------------------- |
| newIGovernor | IGovernor | New governor address |
