<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def dirty_fields(self):
 """ Return an array of field names that are dirty Dirty means if a model was hydrated first from the store & then had field values changed they are now considered dirty. For new models all fields are considered dirty. :return: list """


        dirty_fields = []

        for field in self.all_fields:
            if field not in self._original:
                dirty_fields.append(field)
            elif self._original[field] != getattr(self, field):
                dirty_fields.append(field)
        return dirty_fields