diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
new file mode 100644
index 0000000000000000000000000000000000000000..ab021934da68eb186bd9a1af25c925156dce4b77
--- /dev/null
+++ b/.devcontainer/devcontainer.json
@@ -0,0 +1,27 @@
+// For format details, see https://aka.ms/devcontainer.json. For config options, see the
+// README at: https://github.com/devcontainers/templates/tree/main/src/php
+{
+	"name": "PHP",
+	// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
+	"image": "mcr.microsoft.com/devcontainers/php:0-8.1",
+
+	// Features to add to the dev container. More info: https://containers.dev/features.
+	// "features": {},
+
+	// Configure tool-specific properties.
+	// "customizations": {},
+
+	// Use 'forwardPorts' to make a list of ports inside the container available locally.
+	// "forwardPorts": [
+	// 	8080
+	// ],
+	"features": {
+		"ghcr.io/devcontainers/features/git:1": {}
+	},
+
+	// Use 'postCreateCommand' to run commands after the container is created.
+	// "postCreateCommand": "sudo chmod a+x \"$(pwd)\" && sudo rm -rf /var/www/html && sudo ln -s \"$(pwd)\" /var/www/html"
+
+	// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
+	"remoteUser": "root"
+}
diff --git a/composer.json b/composer.json
index 78168aa1c037726197fbf6756a3cfd1dd727368f..7db0c43d75952f9fb536d6e826e64432d4466e3d 100644
--- a/composer.json
+++ b/composer.json
@@ -1,4 +1,3 @@
-
 {
   "name": "adaures/podcast-persons-taxonomy",
   "description": "Generate PHP translation files for CodeIgniter4 from the podcast-namespace's Persons Taxonomy json files.",
diff --git a/composer.lock b/composer.lock
new file mode 100644
index 0000000000000000000000000000000000000000..4bcdfe9d80014808309a8309e8a1565d659e8086
--- /dev/null
+++ b/composer.lock
@@ -0,0 +1,18 @@
+{
+    "_readme": [
+        "This file locks the dependencies of your project to a known state",
+        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+        "This file is @generated automatically"
+    ],
+    "content-hash": "84750f945133f503a1f96ec51fd7275b",
+    "packages": [],
+    "packages-dev": [],
+    "aliases": [],
+    "minimum-stability": "stable",
+    "stability-flags": [],
+    "prefer-stable": false,
+    "prefer-lowest": false,
+    "platform": [],
+    "platform-dev": [],
+    "plugin-api-version": "2.3.0"
+}
diff --git a/src/ReversedTaxonomyGenerate.php b/src/ReversedTaxonomyGenerate.php
index 152a3cd2ea8d9040d5452e06bd302a52bf142474..1ee3146c794aca85b5dcb93327db3afed1d85a0b 100755
--- a/src/ReversedTaxonomyGenerate.php
+++ b/src/ReversedTaxonomyGenerate.php
@@ -57,10 +57,10 @@ foreach ($taxonomy as $line) {
     $newgroup = slug(substr($line['key'], 0, strpos($line['key'], '/')));
     if ($group !== $newgroup) {
         $group = $newgroup;
-        $taxonomy_array[$line['group']] = ['slug' => $group];
+        $taxonomy_array[strtolower($line['group'])] = ['slug' => $group];
     }
     $role = slug(substr($line['key'], strpos($line['key'], '/') + 1));
-    $taxonomy_array[$line['group']]['roles'][$line['role']] = ['slug' => $role];
+    $taxonomy_array[strtolower($line['group'])]['roles'][strtolower($line['role'])] = ['slug' => $role];
 }
 
 $currentYear = date("Y");