removed ||= because it causes infinite loop when choice is invalid