Fix varname collision
Update `set` method so `changes` only return fields that have really changed.