introduced the ICheckoutEvents interface
use CloneOperation as a provider for checkout events
cleanup