@classmethod
def from_dict(cls, data):
    """
        Main initialization. Deals with nested dictionaries.

        :param dict data: a (possibly nested) dictionary
        :return: new :py:class:`SuperDict`
        """
    if not isinstance(data, dict):
        return data
    data = cls(data)
    for key, value in data.items():
        data[key] = cls.from_dict(value)
    return data
