# Issue related to openzeppelin-contracts-ethereum-package Ownable.sol

**URL:** <https://forum.openzeppelin.com/t/issue-related-to-openzeppelin-contracts-ethereum-package-ownable-sol/2857>\
**Category:** Contracts\
**Created:** [May 14, 2020, 5:36pm UTC](https://forum.openzeppelin.com/t/issue-related-to-openzeppelin-contracts-ethereum-package-ownable-sol/2857 "2020-05-14T17:36:28Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Oren](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/oren/32/1169_2.png) [@Oren](https://forum.openzeppelin.com/u/Oren)\
**Post date:** [May 14, 2020, 5:36pm UTC](https://forum.openzeppelin.com/t/issue-related-to-openzeppelin-contracts-ethereum-package-ownable-sol/2857/1 "2020-05-14T17:36:28Z")

</div>

With the latest implementation of Ownable.sol , there is no way straight fwd way to set owner other than the deployer.

> <https://github.com/OpenZeppelin/openzeppelin-contracts-ethereum-package/blob/master/contracts/access/Ownable.sol#L23>

  
One need to deploy and then need to transferOwnership from the deployer account.

This is not so optimal pattern , especially , if using the upgradable proxy pattern where the actual deployer…is the a contract which does not provide a way to do that …[like this](https://github.com/OpenZeppelin/openzeppelin-sdk/blob/master/packages/lib/contracts/application/App.sol#L117)

In the previous implementation of Ownable there was an initilize function which enable that.  
`/** * @dev Initializes the contract setting the deployer as the initial owner. */ function initialize(address sender) public initializer { _owner = sender; emit OwnershipTransferred(address(0), _owner); }`

see [https://github.com/OpenZeppelin/openzeppelin-contracts-ethereum-package/issues/86](https://github.com/OpenZeppelin/openzeppelin-contracts-ethereum-package/issues/86)

---

<div class="post-metadata">

**Author:** ![abcoathup](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/abcoathup/32/415_2.png) [@abcoathup](https://forum.openzeppelin.com/u/abcoathup)\
**Post date:** [May 15, 2020, 3:46am UTC](https://forum.openzeppelin.com/t/issue-related-to-openzeppelin-contracts-ethereum-package-ownable-sol/2857/2 "2020-05-15T03:46:35Z")

</div>

Hi @Oren,

Thanks for raising.  
Discussion on this issue can be found in OpenZeppelin Contracts:

> <https://github.com/OpenZeppelin/openzeppelin-contracts/issues/2236>
>
> If a contract is Ownable, the owner is automatically set to the deployer account. Because transferOwnership can only be called by...

Also see the following comment:

> <https://github.com/OpenZeppelin/openzeppelin-contracts-ethereum-package/issues/86#issuecomment-628849466>
>
> With the latest implementation of Ownable.sol , there is no way straight fwd way to set owner other than the deployer.
> https://github.com/OpenZeppelin/openzeppelin-contracts-ethereum-package/blob/master/contracts/access/Ownable.sol#L23
> One...
