DRY in Rules solution