protected function initReport()
    {
        $report_implementor = $this->config->getReportImplementor();
        $report = new $report_implementor();

        if (!$report instanceof IReport) {
            throw new \InvalidArgumentException(
                'The given report class "' . $report_implementor . '" does not implement IReport.'
            );
        }

        $this->report = $report;
        $this->report->setParameters(new Parameters($this->config->get('report', array())));

        return $this->report;
    }