update user functionality