@classmethod
def from_json(cls, data, **kwargs):
    """
        Create a new instance from a JSON dict
        """
    data_copy = data.copy()
    if kwargs:
        for key, value in kwargs.items():
            data_copy[key] = value
    c = cls(**data_copy)
    c._json = data
    return c
