refactored 'update user'