diff --git a/scripts/Common/Config/GnomeExtensions/install-extension.sh b/scripts/Common/Config/GnomeExtensions/install-extension.sh
new file mode 100755
index 00000000..c4e59527
--- /dev/null
+++ b/scripts/Common/Config/GnomeExtensions/install-extension.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+function installExtension() {
+    local -n queue="$1";
+
+    for id in ${queue[@]}
+    do
+        gnome-shell-extension-installer "$id" --yes;
+    done;
+}
diff --git a/scripts/Common/Config/GnomeExtensions/install.sh b/scripts/Common/Config/GnomeExtensions/install.sh
index efb255ec..9ade174e 100755
--- a/scripts/Common/Config/GnomeExtensions/install.sh
+++ b/scripts/Common/Config/GnomeExtensions/install.sh
@@ -1,39 +1,14 @@
 #!/bin/bash
-extensionLocation=/usr/share/gnome-shell/extensions;
-
 pushd "${BASH_SOURCE%/*}" > /dev/null;
 . "../../gnome-shell-extension-installer/install.sh";
-uuids=();
+. "./install-extension.sh";
 
-for id in
+extensions=(
     5278 # pano                         https://extensions.gnome.org/extension/5278/pano/
     4907 # EasyEffects Preset Selector  https://extensions.gnome.org/extension/4907/easyeffects-preset-selector/
     1162 # Emoji Selector               https://extensions.gnome.org/extension/1162/emoji-selector/
-do
-    contextRoot="$(mktemp -d)";
-    unzipLocation="$(mktemp -d)";
-    pushd "$contextRoot" > /dev/null;
-
-    gnome-shell-extension-installer "$id" --no-install;
-    sudo gnome-shell-extension-installer "$id" --yes;
-    unzip ./*.zip -d "$unzipLocation";
-
-    uuid="$(jq -r '.uuid' "$unzipLocation/metadata.json")";
-    uuids+=("$uuid");
-
-    sudo chmod -R +r "$extensionLocation/$uuid";
-
-    popd > /dev/null;
-    rm -rf "$contextRoot";
-done
-
-killall -SIGQUIT gnome-shell;
-sleep 3;
-
-for uuid in ${uuids[@]}
-do
-    gnome-extensions enable "$uuid";
-done
+);
 
+installExtension extensions;
 killall -SIGQUIT gnome-shell;
 popd > /dev/null;