<?xml version="1.0"?>
<!--
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <preference for="Magento\InstantPurchase\Model\InstantPurchaseInterface" type="Magento\InstantPurchase\Model\InstantPurchaseChooser" />
    <preference for="Magento\InstantPurchase\Model\PaymentMethodChoose\PaymentTokenChooserInterface" type="Magento\InstantPurchase\Model\PaymentMethodChoose\LastCreatedPaymentTokenChooser" />
    <preference for="Magento\InstantPurchase\Model\ShippingAddressChoose\ShippingAddressChooserInterface" type="Magento\InstantPurchase\Model\ShippingAddressChoose\DefaultShippingAddressChooser" />
    <preference for="Magento\InstantPurchase\Model\BillingAddressChoose\BillingAddressChooserInterface" type="Magento\InstantPurchase\Model\BillingAddressChoose\DefaultBillingAddressChooser" />
    <preference for="Magento\InstantPurchase\Model\ShippingMethodChoose\ShippingMethodChooserInterface" type="Magento\InstantPurchase\Model\ShippingMethodChoose\CheapestMethodChooser" />

    <preference for="Magento\InstantPurchase\PaymentMethodIntegration\AvailabilityCheckerInterface" type="Magento\InstantPurchase\PaymentMethodIntegration\StaticAvailabilityChecker" />
    <preference for="Magento\InstantPurchase\PaymentMethodIntegration\PaymentTokenFormatterInterface" type="Magento\InstantPurchase\PaymentMethodIntegration\SimplePaymentTokenFormatter" />
    <preference for="Magento\InstantPurchase\PaymentMethodIntegration\PaymentAdditionalInformationProviderInterface" type="Magento\InstantPurchase\PaymentMethodIntegration\StaticAdditionalInformationProvider" />

    <type name="Magento\InstantPurchase\Model\ShippingMethodChoose\DeferredShippingMethodChooserPool">
        <arguments>
            <argument name="choosers" xsi:type="array">
                <item name="cheapest" xsi:type="object">Magento\InstantPurchase\Model\ShippingMethodChoose\CheapestMethodDeferredChooser</item>
            </argument>
        </arguments>
    </type>
</config>