public function run(ManifestInterface $manifest)
    {
        $builder = new ProcedureBuilder();
        $processor = $manifest->getProcessor();

        if ($this->dispatcher) {
            $processor->setEventDispatcher($this->dispatcher);
        }

        $manifest->configureProcedureBuilder($builder);
        $manifest->configureProcessor($manifest->getProcessor());

        $procedure = $builder->getProcedure();

        $processor
            ->addProcedure($procedure)
            ->process();
    }