private function loadSource(Model\Source $sourceModel, array $sourceData)
    {
        $sourceModel
        ->setId($sourceData['id'])
        ->setMethod(new Model\Method($sourceData['class'], $sourceData['method'], $sourceData['args']))
        ->setLazyLoading($sourceData['lazyLoading'])
        ->setSupplySeveralFields($sourceData['supplySeveralFields'])
        ->setOnFail($sourceData['onFail'])
        ->setExceptionClass($sourceData['exceptionClass'])
        ->setBadReturnValue($sourceData['badReturnValue'])
        ->setFallbackSourceId($sourceData['fallbackSourceId'])
        ->setDepends($sourceData['depends'])
        ;

        if (isset($sourceData['preprocessor']['method'])) {
            $sourceModel->addPreprocessor(
                new Model\Method(
                    $sourceData['preprocessor']['class'],
                    $sourceData['preprocessor']['method'],
                    $sourceData['preprocessor']['args']
                )
            );
        } elseif (isset($sourceData['preprocessors'])) {
            foreach ($sourceData['preprocessors'] as $preprocessor) {
                $sourceModel->addPreprocessor(
                    new Model\Method(
                        $preprocessor['class'],
                        $preprocessor['method'],
                        $preprocessor['args']
                    )
                );
            }
        }

        if (isset($sourceData['processor']['method'])) {
            $sourceModel->addProcessor(
                new Model\Method(
                    $sourceData['processor']['class'],
                    $sourceData['processor']['method'],
                    $sourceData['processor']['args']
                )
            );
        } elseif (isset($sourceData['processors'])) {
            foreach ($sourceData['processors'] as $processor) {
                $sourceModel->addProcessor(
                    new Model\Method(
                        $processor['class'],
                        $processor['method'],
                        $processor['args']
                    )
                );
            }
        }

        return $sourceModel;
    }