contract NFTSafeHook is ERC721SafeHooksUpgradeable {

    /**
    * @notice initializes contract
    */
    function initialize(
        string memory name_, 
        string memory symbol_, 
        string memory contractURI_,
        address costManager_,
        address producedBy_
    ) 
        public 
        initializer 
    {
        __Ownable_init();
        __ReentrancyGuard_init();
        __ERC721SafeHook_init(name_, symbol_, costManager_, producedBy_);
        _contractURI = contractURI_;

    }
}
/**
 * NFT with safe hooks support
 */
function initialize(
        string memory name_, 
        string memory symbol_, 
        string memory contractURI_,
        address costManager_,
        address producedBy_
    ) 
        public 
        initializer 
    {
        __Ownable_init();
        __ReentrancyGuard_init();
        __ERC721SafeHook_init(name_, symbol_, costManager_, producedBy_);
        _contractURI = contractURI_;

    }
/**
 * @notice initializes contract
 */