// TODO :this should be done by DI framework and cleaned up from this class
 public OrderProcessor(
     ICommissionHandler commissionHandler,
     IPackageSlipPrinter packageSlipPrinter,
     IEmailClient emailClient,
     IMembershipRepository membershipRepository,
     ISpecialRuleRepository specialRuleRepository)
 {
     this.commissionHandler     = commissionHandler;
     this.packageSlipPrinter    = packageSlipPrinter;
     this.emailClient           = emailClient;
     this.membershipRepository  = membershipRepository;
     this.specialRuleRepository = specialRuleRepository;
 }
 public PhysicalProductPurchaseHandler(IPackageSlipPrinter packageSlipPrinter, ICommissionHandler commissionHandler)
 {
     this.packageSlipPrinter = packageSlipPrinter;
     this.commissionHandler  = commissionHandler;
 }