# Summary of Key Changes

#### Before

* Admin-only model: Contracts could only be migrated by their admin
* Binary upgradeability: Contracts were either upgradable (with admin) or not upgradable (without admin)
* No governance integration: No way for governance to control contract upgrades

#### After

* Hybrid model: Admin + governance control combinations
* Governance integration: On-chain proposals can authorize specific migrations
* One-way governance flag: Contracts can irreversibly require governance approval
* Four upgrade scenarios: Multiple combinations of admin and governance requirements
* Batch migrations: Single governance proposal can authorize multiple contract migrations
* Governance-only migration pattern: New mechanism for contracts with no admin but governance control<br>

The schematics of the updated system is shown below:

<figure><img src="https://1849345700-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgF1LuzRcRVxJ2tTkh299%2Fuploads%2FEJRFvhoT7q4CGlUyi84J%2Fimage.png?alt=media&#x26;token=be28c29f-f9ed-4a7c-aa25-5567f5b57017" alt=""><figcaption></figcaption></figure>
