public final DiscountStrategy lookupDiscount(String discId) {
	if (discId == null) {
	    throw new IllegalArgumentException();
	}

	DiscountStrategy discount = null;

	for (int i = 0; i < numDiscounts; i++) {
	    if (discounts[i].getId().equalsIgnoreCase(discId)) {
		discount = discounts[i].getDiscount();
		if (discount == null) {
		    discount = allocateDiscount(discounts[i]);
		}
		break;
	    }
	}

	if (discount == null) {
	    throw new IllegalArgumentException();   // This should be something else...
	}
	
	return discount;
    }