contract Token is UpgradeableToken {
    string public name = "Ydentity";
    string public symbol = "YDY";
    uint8 public constant decimals = 18;

    // For patient incentive programs
    uint256 public INITIAL_SUPPLY;

    event UpdatedTokenInformation(string newName, string newSymbol);

    function Token(address ydyWallet, address _upgradeMaster, uint256 _INITIAL_SUPPLY)
        public
        UpgradeableToken(_upgradeMaster)
    {
        INITIAL_SUPPLY = _INITIAL_SUPPLY * (10 ** uint256(decimals));
        totalSupply_ = INITIAL_SUPPLY;
        balances[ydyWallet] = INITIAL_SUPPLY;
        emit Transfer(address(0), ydyWallet, INITIAL_SUPPLY);
    }

    /**
    * Owner can update token information here
    */
    function setTokenInformation(string _name, string _symbol) external onlyOwner {
        name = _name;
        symbol = _symbol;

        emit UpdatedTokenInformation(name, symbol);
    }

}
function setTokenInformation(string _name, string _symbol) external onlyOwner {
    name = _name;
    symbol = _symbol;

    emit UpdatedTokenInformation(name, symbol);
}

/**
 * Owner can update token information here
 */