public List<DeliveryOption> getFeasible(Cart rx)
	{
		Set<DeliveryOption> ret = new HashSet<>(getAll());
		log.info("Filtering total {} options", ret.size());
		List<Set<DeliveryOption>> options = new ArrayList<>();
		for(Class<? extends AbstractConstraint> clazz : constraintClasses)
			try
			{
				AbstractConstraint constraint = clazz
					.getConstructor(rx.getClass())
					.newInstance(rx);
				options.add(constraint.call());
			}
			catch(Exception e)
			{
				log.error(e.toString(), e);
			}
		for(Set<DeliveryOption> option : options)
			ret.retainAll(option);

		return new ArrayList<>(ret);
	}