reworked how update user works