<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def modify(self, fields=None, **fields_kwargs):
 """update the fields of this instance with the values in dict fields this should rarely be messed with, if you would like to manipulate the fields you should override _modify() :param fields: dict, the fields in a dict :param **fields_kwargs: dict, if you would like to pass the fields as key=val this picks those up and combines them with fields :returns: set, all the names of the fields that were modified """

        modified_fields = set()
        fields = self.make_dict(fields, fields_kwargs)
        fields = self._modify(fields)
        for field_name, field_val in fields.items():
            in_schema = field_name in self.schema.fields
            if in_schema:
                setattr(self, field_name, field_val)
                modified_fields.add(field_name)

        return modified_fields