# Upgradeable vs non-upgradeable contracts

**URL:** https://forum.openzeppelin.com/t/upgradeable-vs-non-upgradeable-contracts/28066
**Category:** Upgrades
**Tags:** proxies, upgrades
**Created:** [April 26, 2022, 11:48pm UTC](https://forum.openzeppelin.com/t/upgradeable-vs-non-upgradeable-contracts/28066 "2022-04-26T23:48:18Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![lalalei](https://avatars.discourse-cdn.com/v4/letter/l/df705f/32.png) [@lalalei](https://forum.openzeppelin.com/u/lalalei)
#### Post date: [April 26, 2022, 11:48pm UTC](https://forum.openzeppelin.com/t/upgradeable-vs-non-upgradeable-contracts/28066/1 "2022-04-26T23:48:19Z")

</div>

Hi, I would like some help in understanding proxied and upgradeable contracts. If the implementation contract has a proxy (let's say it's using the UUPS proxy pattern), what would be the difference between using the `@openzeppelin/contracts` and the `@openzeppelin/contracts-upgradeable` libraries? Isn't the proxy used to delegate calls to the implementation contract, which should allow the implementation contract to be changed/upgraded?

---

<div class="post-metadata">

### Author: ![nkuba](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/nkuba/32/14670_2.png) [@nkuba](https://forum.openzeppelin.com/u/nkuba)
#### Post date: [April 29, 2022, 9:20am UTC](https://forum.openzeppelin.com/t/upgradeable-vs-non-upgradeable-contracts/28066/2 "2022-04-29T09:20:39Z")

</div>

Hey!  
I believe the main difference is handling how the contracts are deployed. In upgradable contracts, you have to shift from the `constructor` to the `initialize` function. Read more:

- [https://docs.openzeppelin.com/upgrades-plugins/1.x/writing-upgradeable#initializers](https://docs.openzeppelin.com/upgrades-plugins/1.x/writing-upgradeable#initializers)
- [https://docs.openzeppelin.com/upgrades-plugins/1.x/proxies#the-constructor-caveat](https://docs.openzeppelin.com/upgrades-plugins/1.x/proxies#the-constructor-caveat)

---

<div class="post-metadata">

### Author: ![eeshenggoh](https://avatars.discourse-cdn.com/v4/letter/e/8dc957/32.png) [@eeshenggoh](https://forum.openzeppelin.com/u/eeshenggoh)
#### Post date: [March 28, 2024, 6:12am UTC](https://forum.openzeppelin.com/t/upgradeable-vs-non-upgradeable-contracts/28066/3 "2024-03-28T06:12:32Z")

</div>

Hi, I'm facing similar issues, to check out this link. [What's the difference between upgradable and non upgradable Initializable contracts? Aren't all proxies meant to be support upgradable implementation contract?](https://forum.openzeppelin.com/t/whats-the-difference-between-upgradable-and-non-upgradable-initializable-contracts-arent-all-proxies-meant-to-be-support-upgradable-implementation-contract/40041)
