What is wrong with leaving this logic in the `PromotionRule` classes like what we have now?