Product problematicProduct) {
// TODO explore domain rules, maybe use genetic algorithm to breed spec;)
return new DisjunctionSpecification<Product>(
new SimilarPrice(problematicProduct.getPrice(), generateAcceptableDifference(client)),
new SimilarName(problematicProduct.getName()),
new SameCategory(problematicProduct.getProductType()));
}