Another thing that I forgot to mention is that the site I'm working on wants to give the user the choice of payment method. Credit card, paypal or whatever else. If I just bind the PaymentGateway service contract to (say) the PayFlow Pro implementation, then credit card is the only payment method available. If I bind it to Paypal (if that was feasible) than only Paypal will be available.