update user more functional