diff --git a/Api/ExportInterface.php b/Api/ExportInterface.php
new file mode 100644
index 0000000000000000000000000000000000000000..43e82e25513d1ae41796654d6bcb49d9807bb4fe
--- /dev/null
+++ b/Api/ExportInterface.php
@@ -0,0 +1,16 @@
+<?php
+declare(strict_types=1);
+
+namespace Firegento\ContentProvisioning\Api;
+
+use Firegento\ContentProvisioning\Api\Data\EntryInterface;
+
+interface ExportInterface
+{
+    /**
+     * @param StrategyInterface $strategy
+     * @param EntryInterface    $entry
+     * @return void
+     */
+    public function execute(StrategyInterface $strategy, EntryInterface $entry): void;
+}
\ No newline at end of file
diff --git a/Api/StrategyInterface.php b/Api/StrategyInterface.php
new file mode 100644
index 0000000000000000000000000000000000000000..f628b53784a54e038f0d92eec3e10e38b24a4684
--- /dev/null
+++ b/Api/StrategyInterface.php
@@ -0,0 +1,12 @@
+<?php
+declare(strict_types=1);
+
+namespace Firegento\ContentProvisioning\Api;
+
+interface StrategyInterface
+{
+    /**
+     * @return string
+     */
+    public function getTargetPath(): string;
+}
diff --git a/Api/StrategyProviderInterface.php b/Api/StrategyProviderInterface.php
new file mode 100644
index 0000000000000000000000000000000000000000..0e7519ed40704511a257ea442b8a75c05bd4610d
--- /dev/null
+++ b/Api/StrategyProviderInterface.php
@@ -0,0 +1,17 @@
+<?php
+declare(strict_types=1);
+
+namespace Firegento\ContentProvisioning\Api;
+
+use Magento\Framework\Exception\NotFoundException;
+
+interface StrategyProviderInterface
+{
+    /**
+     * @param string $strategyCode
+     * @return StrategyInterface
+     *
+     * @throws NotFoundException
+     */
+    public function get(string $strategyCode): StrategyInterface;
+}
diff --git a/Model/Strategy/ExportToModule.php b/Model/Strategy/ExportToModule.php
new file mode 100644
index 0000000000000000000000000000000000000000..489ec21e1e9243dda2bb1758743e090c66d4486d
--- /dev/null
+++ b/Model/Strategy/ExportToModule.php
@@ -0,0 +1,18 @@
+<?php
+declare(strict_types=1);
+
+namespace Firegento\ContentProvisioning\Model\Strategy;
+
+use Firegento\ContentProvisioning\Api\StrategyInterface;
+
+class ExportToModule implements StrategyInterface
+{
+
+    /**
+     * @return string
+     */
+    public function getTargetPath(): string
+    {
+        // TODO: Implement getTargetPath() method.
+    }
+}
diff --git a/Model/Strategy/ExportToVar.php b/Model/Strategy/ExportToVar.php
new file mode 100644
index 0000000000000000000000000000000000000000..89073321b22bcde31f1822efe807b5c0a2c8d33c
--- /dev/null
+++ b/Model/Strategy/ExportToVar.php
@@ -0,0 +1,18 @@
+<?php
+declare(strict_types=1);
+
+namespace Firegento\ContentProvisioning\Model\Strategy;
+
+use Firegento\ContentProvisioning\Api\StrategyInterface;
+
+class ExportToVar implements StrategyInterface
+{
+
+    /**
+     * @return string
+     */
+    public function getTargetPath(): string
+    {
+        // TODO: Implement getTargetPath() method.
+    }
+}
diff --git a/Model/Strategy/Provider.php b/Model/Strategy/Provider.php
new file mode 100644
index 0000000000000000000000000000000000000000..372e96f82a87deed0d7c04ff6708ada10ed3ac8e
--- /dev/null
+++ b/Model/Strategy/Provider.php
@@ -0,0 +1,42 @@
+<?php
+declare(strict_types=1);
+
+namespace Firegento\ContentProvisioning\Model\Strategy;
+
+use Firegento\ContentProvisioning\Api\StrategyInterface;
+use Firegento\ContentProvisioning\Api\StrategyProviderInterface;
+use Magento\Framework\Exception\NotFoundException;
+
+class Provider implements StrategyProviderInterface
+{
+    /**
+     * @var array|StrategyInterface[]
+     */
+    private $strategies;
+
+    /**
+     * Provider constructor.
+     * @param StrategyInterface[] $strategies
+     */
+    public function __construct(array $strategies)
+    {
+        $this->strategies = $strategies;
+    }
+
+    /**
+     * @param string $strategyCode
+     * @return StrategyInterface
+     *
+     * @throws NotFoundException
+     */
+    public function get(string $strategyCode): StrategyInterface
+    {
+        $strategy = $this->strategies[$strategyCode] ?? null;
+
+        if (!$strategy) {
+            throw new NotFoundException(__('Strategy %s not found.', $strategyCode));
+        }
+
+        return $strategy;
+    }
+}
diff --git a/etc/di.xml b/etc/di.xml
index a00e2d47caec5122b9cef8ed1b8df0c8107854ff..8243449ee6fc4123fef8954e3bd11b104779f91f 100644
--- a/etc/di.xml
+++ b/etc/di.xml
@@ -107,4 +107,24 @@
             </argument>
         </arguments>
     </type>
+
+    <preference
+        for="Firegento\ContentProvisioning\Api\StrategyProviderInterface"
+        type="Firegento\ContentProvisioning\Model\Strategy\Provider"
+    />
+
+    <preference
+        for="Firegento\ContentProvisioning\Api\ExportInterface"
+        type="Firegento\ContentProvisioning\Model\Command\ExportEntry"
+    />
+
+    <type name="Firegento\ContentProvisioning\Model\Strategy\Provider">
+        <arguments>
+            <argument name="strategies" xsi:type="array">
+                <item name="export_to_module" xsi:type="object">Firegento\ContentProvisioning\Model\Strategy\ExportToModule</item>
+                <item name="export_to_var" xsi:type="object">Firegento\ContentProvisioning\Model\Strategy\ExportToVar</item>
+            </argument>
+        </arguments>
+    </type>
+
 </config>