diff --git a/self_compilation.sh b/self_compilation.sh
index c39dfe781d8012317f931ae0bab70158ece0218b..6a86e95f4c7b64bc37c805e74f33fb85c6069107 100644
--- a/self_compilation.sh
+++ b/self_compilation.sh
@@ -103,18 +103,20 @@ fi
 make -j $(nproc --all)
 make modules_install INSTALL_MOD_STRIP=1 install
 
+function install_kernel() {
+declare -r distroId="$(awk -F= '$1=="ID"{print $NF}' /etc/os-release)"
 case "${distroId,,}" in
         *void*)
             cp ./arch/x86_64/boot/bzImage /boot/vmlinuz-"$KVER"
-	        dracut --kver "$KVER" --force
-	        grub-mkconfig -o /boot/grub/grub.cfg
-	        xbps-reconfigure -fa
-	        /usr/bin/update-grub            
+	    dracut --kver "$KVER" --force
+	    grub-mkconfig -o /boot/grub/grub.cfg
+	    xbps-reconfigure -fa
+	    /usr/bin/update-grub            
             return 0
           ;;
         *debian*|*ubuntu*)
             cp ./arch/x86_64/boot/bzImage /boot/vmlinuz-"$KVER"
-	        dracut --kver "$KVER" --force
+	    dracut --kver "$KVER" --force
             update-grub2
             return 0
           ;;
@@ -126,7 +128,11 @@ case "${distroId,,}" in
              printf '%s\n' "Unable to detect Operating System!" >&2
              return 1
            ;;
-    esac
+esac
+}
+
+install_kernel
+
 
 
 # Remove sysmap/signing keys