removed changed_attributes to see what code finally looks like
(note, this reveals some bugs)