diff --git a/.gitignore b/.gitignore
index 7579f74311d35aae05dd0f0a54537ea7a0034e89..b434878cd64fbe65b5b4dfd0fdf9db3f2003ad7b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 vendor
+.env
 composer.lock
diff --git a/composer.json b/composer.json
index 7a1d210aed4f472787b585699fe41426864738bb..17d0d4e0150686c29f973191f45ff6661a521ed8 100644
--- a/composer.json
+++ b/composer.json
@@ -24,14 +24,14 @@
         "source": "https://gitlab.lakedrops.com/composer/plugin/dorgflow/tree/master"
     },
     "require": {
-        "php": ">=7.0",
+        "php": ">=7.2",
         "composer-plugin-api": "^1.0.0",
         "cypresslab/gitelephant": "^2.0|^4.0",
-        "lakedrops/composer-json-utils": "^1.3.2"
+        "lakedrops/composer-json-utils": "^1.5"
     },
     "require-dev": {
-        "composer/composer": "^1.5.0",
-        "phpunit/phpunit": "^4.8.0"
+        "composer/composer": "^1.10",
+        "phpunit/phpunit": "^8.4"
     },
     "minimum-stability": "dev",
     "prefer-stable": true,
diff --git a/src/CommandProvider.php b/src/CommandProvider.php
index f34e7b034a41c334a7f3dc150433a3a6fc3dce96..8518e8bf4c38138766ecb57036465e4955ae2ba1 100644
--- a/src/CommandProvider.php
+++ b/src/CommandProvider.php
@@ -3,14 +3,11 @@
 namespace LakeDrops\DorgFlow;
 
 use Composer\Plugin\Capability\CommandProvider as CommandProviderCapability;
-use Composer\Command\BaseCommand;
 
 class CommandProvider implements CommandProviderCapability {
 
   /**
-   * Retrieves an array of commands
-   *
-   * @return BaseCommand[]
+   * {@inheritdoc}
    */
   public function getCommands(): array {
     return [
diff --git a/src/Handler.php b/src/Handler.php
index bc75eafdc76288b64005837ef965f10a82f9136d..eabba98e0aa4610a358c4b0ec814874d11095dfe 100644
--- a/src/Handler.php
+++ b/src/Handler.php
@@ -2,6 +2,7 @@
 
 namespace LakeDrops\DorgFlow;
 
+use Exception;
 use GitElephant\Repository;
 use LakeDrops\Component\Composer\BaseHandler;
 use Symfony\Component\Filesystem\Filesystem;
@@ -23,22 +24,26 @@ class Handler extends BaseHandler {
       return;
     }
 
-    $options = $this->getOptions();
-    if (empty($options['projects'])) {
-      return;
-    }
-
-    $this->io->write('Dorgflow: Preparing drupal.org packages for development', TRUE);
     $installationManager = $this->composer->getInstallationManager();
-    foreach ($options['projects'] as $project => $version) {
-      $package = $this->getPackage($project);
-      if ($package === NULL) {
+    $options = $this->getOptions();
+    foreach ([
+               'projects' => 'git.drupal.org:project',
+               'drupalspoons' => 'gitlab.com:drupalspoons',
+             ] as $type => $url) {
+      if (empty($options[$type])) {
         continue;
       }
+      $this->io->write('Dorgflow: Preparing ' . $url . ' packages for development', TRUE);
+      foreach ($options[$type] as $project => $version) {
+        $package = $this->getPackage($project);
+        if ($package === NULL) {
+          continue;
+        }
 
-      $path = $installationManager->getInstallPath($package);
-      $this->io->write("- $project => $path", TRUE);
-      $this->prepareWorkingDirectory($path, $project, $version);
+        $path = $installationManager->getInstallPath($package);
+        $this->io->write("- $project => $path", TRUE);
+        $this->prepareWorkingDirectory($path, $project, $version, $url);
+      }
     }
   }
 
@@ -51,8 +56,9 @@ class Handler extends BaseHandler {
   protected function getOptions(): array {
     $extra = $this->composer->getPackage()->getExtra() + ['dorgflow' => []];
     return $extra['dorgflow'] + [
-      'projects' => [],
-    ];
+        'projects' => [],
+        'drupalspoons' => [],
+      ];
   }
 
   /**
@@ -64,10 +70,12 @@ class Handler extends BaseHandler {
    *   Name of the project.
    * @param string $version
    *   Version to checkout.
+   * @param string $url
+   *   Base URL to checkout from.
    */
-  protected function prepareWorkingDirectory($path, $project, $version) {
-    list(, $projectname) = explode('/', $project);
-    $uri = 'git@git.drupal.org:project/' . $projectname . '.git';
+  protected function prepareWorkingDirectory($path, $project, $version, $url) {
+    [, $projectname] = explode('/', $project);
+    $uri = 'git@' . $url . '/' . $projectname . '.git';
 
     // Git Clone the repository into the working directory.
     $repository = Repository::open($path);
@@ -80,7 +88,7 @@ class Handler extends BaseHandler {
         return;
       }
     }
-    catch (\Exception $ex) {
+    catch (Exception $ex) {
       // Ignore the exception and conitue setup.
     }
 
diff --git a/src/PrepareCommand.php b/src/PrepareCommand.php
index 3a0c2d40c3f40f55a3a310aed8b2048884e37fd5..19eeea3dabd20a37739354e7b79e7f356a375cfd 100644
--- a/src/PrepareCommand.php
+++ b/src/PrepareCommand.php
@@ -12,8 +12,10 @@ class PrepareCommand extends BaseCommand {
    * {@inheritdoc}
    */
   protected function configure() {
-    $this->setName('lakedrops:dorgflow');
-    $this->setDescription('Prepare drupal.org projects for dorgflow utility.');
+    parent::configure();
+    $this
+      ->setName('lakedrops:dorgflow')
+      ->setDescription('Prepare drupal.org projects for dorgflow utility.');
   }
 
   /**