update (final)