add user compound update method
Merge remote-tracking branch 'upstream/user' into user