Upgradeable contracts Take a look at this website https://docs.openzeppelin.com/upgrades-plugins/1.x/faq Takeaways Use initializer functions instead of constructors ProxyAdmins are optional, but it is meant to resolve function clashing