diff --git a/index.html b/index.html
index f5ae242..0e0b476 100644
--- a/index.html
+++ b/index.html
@@ -201,50 +201,14 @@
             <div class="tab-pane fade show active" id="tabone" role="tabpanel">
               <section id="content" class="team_content"></section>
               <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
-              <script>
-                $.ajax({
-                  type: "GET",
-                  url: "https://api.blissroms.org/api/teambliss", // TeamBliss JSON
-                  success: function (data) {
-                    var newContent = ''; // Variable to hold HTML
-                    for (var i = 0; i < data.length; i++) { // Loop through object
-                      newContent += '<div id="event" class="team_item">';
-                      newContent += '<img class="image crop" loading="lazy" style="min-height: 190px" src="' + data[i].avatar + '" ';
-                      newContent += 'alt="' + data[i].member + '" />';
-                      newContent += '<h3><b>' + data[i].member + '</b></h3>';
-                      newContent += '<p class="team_data_text font-weight-bold">' + data[i].designation + '</p>';
-                      // newContent += '<p class="team_data_text font-weight-bold"><i>&quot;' + data[i].email + '&quot;</i></p>';
-                      newContent += '</div>';
-                    }
-                    // Update the page with the new content
-                    document.getElementById('content').innerHTML = newContent;
-                  }
-                })
-              </script>
+              <!-- Team Listing JS -->
+              <script src="js/team.js"></script>
             </div>
             <div class="tab-pane fade" id="tabtwo" role="tabpanel">
               <section id="content2" class="team_content"></section>
               <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
-              <script>
-                $.ajax({
-                  type: "GET",
-                  url: "https://api.blissroms.org/api/maintainers", // TeamBliss JSON
-                  success: function (data) {
-                    var newContent = ''; // Variable to hold HTML
-                    for (var i = 0; i < data.length; i++) { // Loop through object
-                      newContent += '<div id="event" class="team_item">';
-                      newContent += '<img class="image crop" loading="lazy" style="min-height: 190px" src="' + data[i].avatar + '" ';
-                      newContent += 'alt="' + data[i].mname + '" />';
-                      newContent += '<h3><b>' + data[i].mname + '</b></h3>';
-                      newContent += '<p class="team_data_text font-weight-bold">' + data[i].device + '</p>';
-                      newContent += '<p class="team_data_text font-weight-bold"><i>&quot;' + data[i].codename + '&quot;</i></p>';
-                      newContent += '</div>';
-                    }
-                    // Update the page with the new content
-                    document.getElementById('content2').innerHTML = newContent;
-                  }
-                })
-              </script>
+              <!-- Maintainer Listing JS -->
+              <script src="js/maintainers.js"></script>
             </div>
           </div>
         </div>
@@ -331,55 +295,8 @@
               <span class="sr-only">Next</span>
             </a>
           </div>
-          <!---------------->
-          <script>
-            $.ajax({
-              type: "GET",
-              url: "https://api.blissroms.org/api/allprojects",
-              contentType: "application/json",
-              datatype: "json",
-              data: {},
-              success: function (data) {
-                var newContent = ''; // Variable to hold HTML
-                for (var i = 0; i < data.length; i++) { // Loop through object
-                  if (data[i].project != null) {
-                    if (i == 0) {
-                      newContent += '<div class="carousel-item active" style="padding-block: 10vh;" >';
-                    } else {
-                      newContent += '<div class="carousel-item" >';
-                    }
-                    newContent += '<img class="d-block img-fluid" src="' + data[i].project_avatar + '" style="margin-left: 10%; height: 35vh;"';
-                    newContent += 'alt="' + data[i].project + ' " style="padding-top: 1.5rem;"/>';
-                    newContent += '<div class="carousel-caption" style="background: linear-gradient(#343a40 10%, #343a40 100%)!important; padding-top: 50vw; width: 50vw; margin-left: 30vw; bottom: 0px ">';
-                    // newContent += '<div class="item-details">';
-                    newContent += '<h3 class="zxc" ><b style="font-size: xx-large;">' + data[i].project + '</b></h3>';
-                    newContent += '<h5 class="zxc" >Project Lead: ' + data[i].project_lead + '</h5>';
-                    newContent += '<p class="card__text zxc" style=" margin-right: 1.7rem; margin-left: 1.7rem; ">' + data[i].project_description + '</p>';
-                    if (data[i].project_github != null) {
-                      newContent += '<a href="' + data[i].project_github + '" target="_blank"><i class="fab fa fa-git p-2" style="font-size: 300%;"></i></a>';
-                    }
-                    if (data[i].project_website != null) {
-                      newContent += '<a href="' + data[i].project_website + '" target="_blank"><i class="fab fa p-2 fa-globe" style="font-size: 300%;"></i></a>';
-                    }
-                    // newContent += '</div>';
-                    newContent += '</div>';
-                    newContent += '</div>';
-                  } else {
-                    newContent = 'NONE';
-                  }
-                }
-                // Update the page with the new content
-                document.getElementById('carousel-slider').innerHTML = newContent;
-              },
-              error: function (jqXHR, status, err) {
-                newContent = 'ERROR: NONE';
-                document.getElementById('carousel-slider').innerHTML = newContent;
-                alert("Status: " + textStatus);
-                alert("Error: " + errorThrown);
-              }
-            })
-          </script>
-          <!---------------->
+          <!-- BlissLabs Listing JS -->
+          <script src="js/blisslabs-projects.js"></script>
         </div>
       </div>
     </div>
diff --git a/js/blisslabs-projects.js b/js/blisslabs-projects.js
new file mode 100644
index 0000000..1822f04
--- /dev/null
+++ b/js/blisslabs-projects.js
@@ -0,0 +1,45 @@
+$.ajax({
+    type: "GET",
+    url: "https://api.blissroms.org/api/allprojects",
+    contentType: "application/json",
+    datatype: "json",
+    data: {},
+    success: function (data) {
+        var newContent = ''; // Variable to hold HTML
+        for (var i = 0; i < data.length; i++) { // Loop through object
+            if (data[i].project != null) {
+                if (i == 0) {
+                    newContent += '<div class="carousel-item active" style="padding-block: 10vh;" >';
+                } else {
+                    newContent += '<div class="carousel-item" >';
+                }
+                newContent += '<img class="d-block img-fluid" src="' + data[i].project_avatar + '" style="margin-left: 10%; height: 35vh;"';
+                newContent += 'alt="' + data[i].project + ' " style="padding-top: 1.5rem;"/>';
+                newContent += '<div class="carousel-caption" style="background: linear-gradient(#343a40 10%, #343a40 100%)!important; padding-top: 50vw; width: 50vw; margin-left: 30vw; bottom: 0px ">';
+                // newContent += '<div class="item-details">';
+                newContent += '<h3 class="zxc" ><b style="font-size: xx-large;">' + data[i].project + '</b></h3>';
+                newContent += '<h5 class="zxc" >Project Lead: ' + data[i].project_lead + '</h5>';
+                newContent += '<p class="card__text zxc" style=" margin-right: 1.7rem; margin-left: 1.7rem; ">' + data[i].project_description + '</p>';
+                if (data[i].project_github != null) {
+                    newContent += '<a href="' + data[i].project_github + '" target="_blank"><i class="fab fa fa-git p-2" style="font-size: 300%;"></i></a>';
+                }
+                if (data[i].project_website != null) {
+                    newContent += '<a href="' + data[i].project_website + '" target="_blank"><i class="fab fa p-2 fa-globe" style="font-size: 300%;"></i></a>';
+                }
+                // newContent += '</div>';
+                newContent += '</div>';
+                newContent += '</div>';
+            } else {
+                newContent = 'NONE';
+            }
+        }
+        // Update the page with the new content
+        document.getElementById('carousel-slider').innerHTML = newContent;
+    },
+    error: function (jqXHR, status, err) {
+        newContent = 'ERROR: NONE';
+        document.getElementById('carousel-slider').innerHTML = newContent;
+        alert("Status: " + textStatus);
+        alert("Error: " + errorThrown);
+    }
+})
\ No newline at end of file
diff --git a/js/maintainers.js b/js/maintainers.js
new file mode 100644
index 0000000..4e2d962
--- /dev/null
+++ b/js/maintainers.js
@@ -0,0 +1,18 @@
+$.ajax({
+    type: "GET",
+    url: "https://api.blissroms.org/api/maintainers", // TeamBliss JSON
+    success: function (data) {
+        var newContent = ''; // Variable to hold HTML
+        for (var i = 0; i < data.length; i++) { // Loop through object
+            newContent += '<div id="event" class="team_item">';
+            newContent += '<img class="image crop" loading="lazy" style="min-height: 190px" src="' + data[i].avatar + '" ';
+            newContent += 'alt="' + data[i].mname + '" />';
+            newContent += '<h3><b>' + data[i].mname + '</b></h3>';
+            newContent += '<p class="team_data_text font-weight-bold">' + data[i].device + '</p>';
+            newContent += '<p class="team_data_text font-weight-bold"><i>&quot;' + data[i].codename + '&quot;</i></p>';
+            newContent += '</div>';
+        }
+        // Update the page with the new content
+        document.getElementById('content2').innerHTML = newContent;
+    }
+})
\ No newline at end of file
diff --git a/js/team.js b/js/team.js
new file mode 100644
index 0000000..e199a68
--- /dev/null
+++ b/js/team.js
@@ -0,0 +1,18 @@
+$.ajax({
+    type: "GET",
+    url: "https://api.blissroms.org/api/teambliss", // TeamBliss JSON
+    success: function (data) {
+        var newContent = ''; // Variable to hold HTML
+        for (var i = 0; i < data.length; i++) { // Loop through object
+            newContent += '<div id="event" class="team_item">';
+            newContent += '<img class="image crop" loading="lazy" style="min-height: 190px" src="' + data[i].avatar + '" ';
+            newContent += 'alt="' + data[i].member + '" />';
+            newContent += '<h3><b>' + data[i].member + '</b></h3>';
+            newContent += '<p class="team_data_text font-weight-bold">' + data[i].designation + '</p>';
+            // newContent += '<p class="team_data_text font-weight-bold"><i>&quot;' + data[i].email + '&quot;</i></p>';
+            newContent += '</div>';
+        }
+        // Update the page with the new content
+        document.getElementById('content').innerHTML = newContent;
+    }
+})
\ No newline at end of file
