# Android First Party Migration Plan & Removing Deprecated Code
## First Party Migration Plan
We'll be migrating first party specific code into the internal flavor. This will ensure first party still works as intended while cleaning up the API for third party release.
### PayPalCheckoutSdk
1. Remove all deprecated third party functionality.
2. Move PayPalCheckoutSdk into internal flavor.
3. Migrate Dagger `SdkComponent` initialization to work with both PayPalCheckoutSdk & PayPalCheckout.
3a. We could move this into DebugConfigManager and that would resolve the issue for both platforms.
4. Migrate `cancelCheckoutAndExit` to be outside of `PayPalCheckoutSdk` as it's used by `PYPLCheckoutUtils`.
5. Delete external tester activity that use `PayPalCheckoutSdk` and only use activities that use `PayPalCheckout`.
6. `PayPalCheckoutSdk.startCheckoutWithIntentUri` should accept an `ExtendedCheckoutConfig` instead of a `CheckoutConfig`.
### ExtendedCheckoutConfig
1. Becomes a top level class, copy over values from `CheckoutConfig` into `ExtendedCheckoutConfig`.
### CheckoutConfigNew
1. Rename to `CheckoutConfig`.
### PayPalCheckout
1. Remove `PayPalCheckoutSdk` dependency (currently sets `app`).
## Removing Deprecated Code
We should remove all code that is under a `@Deprecated` annotation.
### MainPaysheetViewModel
1. Remove old create order flows. Startng with `CreateOrderApi` and working our way back would probably be best.
### FoundationRiskConfig
1. Clean up `FoundationRiskConfig` and remove deprecated code. Ensure auth still works for third party.