update - generic