public Bundle<Venue> pickBundle(Venue pivot, int maxVenuePerBundleNb) {
		// At the beginning, the bundle of venues contains only the pivot.
		List<Venue> bundleVenues = new ArrayList<Venue>();
		bundleVenues.add(pivot);
		Bundle<Venue> bundle = new Bundle<Venue>(bundleVenues);
		
		// activeVenues is initialized as a copy of venues.
		Map<String, Venue> activeVenues = new HashMap<String, Venue>(localVenues);
		
		// Construction of bundle by finding the most topically similar venues
		// to the pivot.
		while (bundle.getItemNb() < maxVenuePerBundleNb && !activeVenues.isEmpty()) {
			Venue maxTsimVenue = findMaxTsimVenue(pivot, activeVenues);
			if (maxTsimVenue != null) {
				// maxTsimVenue won't be processed again.
				activeVenues.remove(maxTsimVenue.getId());
				bundleVenues.add(maxTsimVenue);
			}
		}
		
		return bundle;
	}