more flexibility with updating user