restructure the sdk.