contract GOKU is GOKUToken {
    /**
     * @notice Initialize the new money market
     * @param name_ ERC-20 name of this token
     * @param symbol_ ERC-20 symbol of this token
     * @param decimals_ ERC-20 decimal precision of this token
     */
    function initialize(
        string memory name_,
        string memory symbol_,
        uint8 decimals_,
        address initial_owner,
        uint256 initSupply_
    )
        public
    {
        require(initSupply_ > 0, "0 init supply");

        super.initialize(name_, symbol_, decimals_);

        initSupply = initSupply_.mul(10**24/ (BASE));
        totalSupply = initSupply_;
        gokusScalingFactor = BASE;
        _gokuBalances[initial_owner] = initSupply_.mul(10**24 / (BASE));

        // owner renounces ownership after deployment as they need to set
        // rebaser and incentivizer, airdrop
        // gov = gov_;
    }
}
function initialize(
    string memory name_,
    string memory symbol_,
    uint8 decimals_,
    address initial_owner,
    uint256 initSupply_
)
    public
{
    require(initSupply_ > 0, "0 init supply");

    super.initialize(name_, symbol_, decimals_);

    initSupply = initSupply_.mul(10**24/ (BASE));
    totalSupply = initSupply_;
    gokusScalingFactor = BASE;
    _gokuBalances[initial_owner] = initSupply_.mul(10**24 / (BASE));

    // owner renounces ownership after deployment as they need to set
    // rebaser and incentivizer, airdrop
    // gov = gov_;
}

/**
 * @notice Initialize the new money market
 * @param name_ ERC-20 name of this token
 * @param symbol_ ERC-20 symbol of this token
 * @param decimals_ ERC-20 decimal precision of this token
 */