protected function execute(InputInterface $input, OutputInterface $output)
    {
        $this->eventEmitter->emit('peridot.execute', [$input, $output]);
        $this->eventEmitter->emit('peridot.reporters', [$input, $this->factory]);

        if ($input->getOption('reporters')) {
            $this->listReporters($output);

            return 0;
        }

        $this->configuration->setReporters($input->getOption('reporter'));
        $this->eventEmitter->emit('peridot.load', [$this, $this->configuration]);

        return $this->getResult();
    }