improved checks on what fields need updating during PUT