# How to implement a non-upgradeable proxy with constructor/initializer calls that can have varying signatures?

**URL:** https://forum.openzeppelin.com/t/how-to-implement-a-non-upgradeable-proxy-with-constructor-initializer-calls-that-can-have-varying-signatures/37103
**Category:** Smart Contracts
**Tags:** proxies, solidity
**Created:** [July 17, 2023, 3:57pm UTC](https://forum.openzeppelin.com/t/how-to-implement-a-non-upgradeable-proxy-with-constructor-initializer-calls-that-can-have-varying-signatures/37103 "2023-07-17T15:57:20Z")
**Posts on this page:** 1
**Showing post:** 9

<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, 5:59am UTC](https://forum.openzeppelin.com/t/how-to-implement-a-non-upgradeable-proxy-with-constructor-initializer-calls-that-can-have-varying-signatures/37103/9 "2024-03-28T05:59:44Z")

</div>

Hi, I need some help with my question, in regards to purpose of using non-upgradeable vs upgradeable proxies? Why would anyone **wants** to use non-upgradeable proxies?

> [@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/why-would-anyone-use-proxies-that-do-not-support-upgradable-contracts-i/40041):
>
> What's the difference between upgradable and non upgradable proxies contracts? @openzeppelin/contracts/proxy/utils/Initializable.sol vs @openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol Why would anyone use proxies that do not support upgradable contracts? Instead, just create contract without a proxy, doesn't that save the trouble? // SPDX-License-Identifier: MIT pragma solidity 0.8.15; import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol"; …

---

_[View the full topic](https://forum.openzeppelin.com/t/how-to-implement-a-non-upgradeable-proxy-with-constructor-initializer-calls-that-can-have-varying-signatures/37103)._
