private final CustomerStrategy allocateCustomer(FakePersistantCustomer fakeCustomer) {
	if (fakeCustomer == null) {
	    throw new IllegalArgumentException();
	}
	
	CustomerStrategy customer = null;
	
	switch (fakeCustomer.getCustType()) {
	    case Basic:
		BasicCustomer bCustomer = new BasicCustomer(fakeCustomer.getId());
		bCustomer.setName(fakeCustomer.getName());
		customer = bCustomer;
		break;
	    case Preferred:
		PreferredCustomer pCustomer = new PreferredCustomer(fakeCustomer.getId(), fakeCustomer.getName());
		pCustomer.setDiscount(lookupDiscount(fakeCustomer.getDiscId()));
		customer = pCustomer;
		break;
	    case Corporate:
		CorporateCustomer cCustomer = new CorporateCustomer (fakeCustomer.getId(), fakeCustomer.getName());
		customer = cCustomer;
		break;
	}

	if (customer == null) {
	    throw new IllegalArgumentException();
	}
	
	return customer;
    }