CheckoutOperation

IIRC the checkout operation was implemented as a draft with most stuff implemented, but untested. So this PR is meant to complete it, test it and maybe re-discuss some parts.

:question: Is it right adding the export macros? Or was it left out on purpose?