Create from another object of different type.

        Another object must be from a derived class of SimpleObject (which
        contains FIELDS)

def create_from(cls, another, **kwargs):
        """Create from another object of different type.

        Another object must be from a derived class of SimpleObject (which
        contains FIELDS)
        """
        reused_fields = {}
        for field, value in another.get_fields():
            if field in cls.FIELDS:
                reused_fields[field] = value
        reused_fields.update(kwargs)
        return cls(**reused_fields)