Abstract out GhciExec to be opaque