Currently, the settlement implementation requires a PrivateKey to be passed in to sign transactions. Replace this mechanism by letting the user supply a Signer module that the settlement process uses.
This enables things like remote signing and is generally a better security practice since it makes it harder to accidentally leak a private key