function migrateTokenController(IControllerGovernance oldController, bool transfersEnables)
        public
        onlyState(GovState.Setup)
        onlyCompany
    {
        require(oldController.newTokenController() == address(0), "NF_OLD_CONTROLLED_ALREADY_MIGRATED");
        
        (address[] memory equityTokens, ) = oldController.capTable();
        (address[] memory offerings, ) = oldController.tokenOfferings();
        
        (,,string memory ISHAUrl,) = oldController.currentAgreement();
        (
            _totalCompanyShares,
            _companyValuationEurUlps,
            _shareholderRights
        ) = oldController.shareholderInformation();
        _equityToken = IEquityToken(equityTokens[0]);
        _commitment = offerings[0];
        
        this.amendAgreement(ISHAUrl);
        
        enableTransfers(transfersEnables);
        transitionTo(GovState.Funded);
        OLD_TOKEN_CONTROLLER = oldController;
    }