protected function getColumnStrategyInstances()
    {
        if ( ! $this->exportInfo) {
            throw new UnexpectedValueException("No export information set, cannot determine column strategies");
        }

        $information = $this->getModelInformation();

        $factory = $this->getExportColumnStrategyFactory();

        $instances = [];

        foreach ($this->exportInfo->columns as $key => $columnData) {

            $instance = $factory->make($columnData->strategy);

            $instance->setColumnInformation($columnData);

            if ($columnData->source) {
                if (isset($information->attributes[ $columnData->source ])) {
                    $instance->setAttributeInformation(
                        $information->attributes[ $columnData->source ]
                    );
                }
            }

            $instances[ $key ] = $instance->initialize($this->modelClass);
        }

        if ( ! count($instances)) {
            throw new UnexpectedValueException("No strategies for any columns, cannot perform export");
        }

        return $instances;
    }