public function __construct(Workflow $workflow, ManagerGroup $storage, $root)
 {
     parent::__construct($workflow, $storage);
     if ($root instanceof PostRevision) {
         $this->root = $root;
     } elseif ($root instanceof RootPostLoader) {
         $this->rootLoader = $root;
     } else {
         throw new InvalidInputException('Expected PostRevision or RootPostLoader, received: ' . is_object($root) ? get_class($root) : gettype($root), 'invalid-input');
     }
 }