diff --git a/index.html b/index.html
index f3770fd..a70ad6a 100644
--- a/index.html
+++ b/index.html
@@ -10,9 +10,11 @@
   <meta name="description" content="Open Source OS for all devices, based on AOSP">
   <meta name="keywords" content="blissroms, bliss, os, x86, aosp, android, rom, teambliss">
   <!-- CSS dependencies -->
-  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
+  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
+    integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
   <script src="https://kit.fontawesome.com/7b4ed0a31a.js" crossorigin="anonymous"></script>
-  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" type="text/css">
+  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
+    type="text/css">
   <link href="https://fonts.googleapis.com/css?family=VT323" rel="stylesheet" type="text/css">
   <link rel="stylesheet" href="neon.css">
   <!-- Script: Make my navbar transparent when the document is scrolled to top -->
@@ -22,18 +24,22 @@
   <link rel="stylesheet" href="css/animations.css">
   <link rel="stylesheet" href="css/style.css">
   <link rel="stylesheet" href="css/table.css">
-  <script data-ad-client="ca-pub-7639560510014441" async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
+  <script data-ad-client="ca-pub-7639560510014441" async=""
+    src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
 </head>
 
 <body class="">
   <!-- Navbar -->
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark" style="padding-right: 41px;">
     <div class="container pt-6">
-      <a class="navbar-brand" href="#"><img src="images/BlissIcon_Smal_wl.png" width="50" class="d-inline-block align-top" alt=""></a>
+      <a class="navbar-brand" href="#"><img src="images/BlissIcon_Smal_wl.png" width="50"
+          class="d-inline-block align-top" alt=""></a>
       <div class="row">
         <div class="col-md-12"><a class="navbar-brand" href="#"><b><b>Bliss ROMs</b></b></a></div>
       </div>
-      <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbar2SupportedContent" aria-controls="navbar2SupportedContent" aria-expanded="true" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button>
+      <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse"
+        data-target="#navbar2SupportedContent" aria-controls="navbar2SupportedContent" aria-expanded="true"
+        aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button>
       <div class="navbar-collapse text-center justify-content-end collapse show" id="navbar2SupportedContent">
         <ul class="navbar-nav">
           <li class="nav-item mx-2">
@@ -60,19 +66,24 @@
     </div>
   </nav>
   <!-- Cover -->
-  <div class="section-fade-out pt-5 pb-5" style="background-image: url(&quot;https://i.imgur.com/BOGKaGy.jpg&quot;); background-position: center bottom;">
+  <div class="section-fade-out pt-5 pb-5"
+    style="background-image: url(&quot;https://i.imgur.com/BOGKaGy.jpg&quot;); background-position: center bottom;">
     <div class="container pt-5">
       <div class="row">
         <div class="col-md-5">
           <div class="col-md-12">
             <h1 class="display-3 mb-4">Bliss ROMs</h1>
-            <p class="lead">Working together to bring you an Open Source OS, based on Android, that incorporates many customizations, options and added security features.&nbsp;<br><br>And it is available for...</p>
+            <p class="lead">Working together to bring you an Open Source OS, based on Android, that incorporates many
+              customizations, options and added security features.&nbsp;<br><br>And it is available for...</p>
             <div class="d-inline-flex justify-content-center align-items-center mx-auto">
-              <a href="#download" class="btn btn-lg btn-primary d-inline-flex justify-content-center align-items-center mx-auto">Download Now</a>
+              <a href="#download"
+                class="btn btn-lg btn-primary d-inline-flex justify-content-center align-items-center mx-auto">Download
+                Now</a>
             </div>
           </div>
         </div>
-        <div class="d-flex justify-content-center align-items-center flex-grow-1" align="center" style="max-height: 100%;max-width: 100%;vertical-align: middle;display: inline-flex;float: none; margin-top: -8%;">
+        <div class="d-flex justify-content-center align-items-center flex-grow-1" align="center"
+          style="max-height: 100%;max-width: 100%;vertical-align: middle;display: inline-flex;float: none; margin-top: -8%;">
           <div class="d-inline-flex justify-content-center align-items-center">
             <div class="animation d-inline-flex justify-content-center align-items-center" data-animation-step="2">
               <div class="device mt-5">
@@ -105,12 +116,19 @@
   <div class="section-fade-in py-5 bg-dark">
     <div class="container">
       <div class="row" id="about">
-        <div class="col-md-6 order-2 order-md-1 animate-in-left d-flex flex-grow-1 align-items-center justify-content-center">
+        <div
+          class="col-md-6 order-2 order-md-1 animate-in-left d-flex flex-grow-1 align-items-center justify-content-center">
           <img class="img-fluid d-block mx-auto" src="images/1571976237838.png" style="" width="50%">
         </div>
         <div class="col-md-6 align-self-center order-1 order-md-2 my-3 text-md-left text-center">
           <h3 class="display-3">About Bliss</h3>
-          <p class="my-4 body-font">We are a volunteer based non-profit organization that works to maintain various open source &amp; closed source development projects. We provide the inspiration, training and mentorship to help the&nbsp;dreams of those that join, become reality.<br><br>One of our main focuses is to provide a quality ROM/OS that can run on all your devices, preserving customizations and options by syncing across all platforms. We try to include all the features you can imagine, for just about any situation.<br><br>You will also find us regularly contributing to other projects as well because we believe that building our community through positive influence will go further than building an empire on selfish goals.</p>
+          <p class="my-4 body-font">We are a volunteer based non-profit organization that works to maintain various open
+            source &amp; closed source development projects. We provide the inspiration, training and mentorship to help
+            the&nbsp;dreams of those that join, become reality.<br><br>One of our main focuses is to provide a quality
+            ROM/OS that can run on all your devices, preserving customizations and options by syncing across all
+            platforms. We try to include all the features you can imagine, for just about any situation.<br><br>You will
+            also find us regularly contributing to other projects as well because we believe that building our community
+            through positive influence will go further than building an empire on selfish goals.</p>
           <a class="btn btn-outline-primary" href="bfor.html">Learn More About Us</a>
         </div>
       </div>
@@ -125,11 +143,16 @@
             <div class="row mx-auto">
               <div class="align-self-center col-lg-6 text-md-left text-center">
                 <h3 class="display-3">Bliss Variants</h3>
-                <p class="my-4 body-font">Bliss comes in a few variants. On top of our traditional device builds of Bliss ROM, our GSI/Treble builds will work on most treble compatible devices (Android Pie+) And our x86 variant (Bliss OS) is made to work with the Linux kernel, and supports booting with MBR/UEFI type bootloaders. So just about any Windows/Linux PC or tablet released in the last 4 years. We are always developing with usability in mind, and supporting more and more devices each week.&nbsp;<br></p>
+                <p class="my-4 body-font">Bliss comes in a few variants. On top of our traditional device builds of
+                  Bliss ROM, our GSI/Treble builds will work on most treble compatible devices (Android Pie+) And our
+                  x86 variant (Bliss OS) is made to work with the Linux kernel, and supports booting with MBR/UEFI type
+                  bootloaders. So just about any Windows/Linux PC or tablet released in the last 4 years. We are always
+                  developing with usability in mind, and supporting more and more devices each week.&nbsp;<br></p>
                 <a class="btn btn-dark" href="#download">Download</a>
               </div>
               <div class="align-self-center mt-5 col-lg-5 offset-1 animate-in-right">
-                <img class="img-fluid d-block" src="images/bliss_surface.png"> </div>
+                <img class="img-fluid d-block" src="images/bliss_surface.png">
+              </div>
             </div>
           </div>
         </div>
@@ -150,17 +173,21 @@
           <h4 class="text-primary"><b>Customized settings</b></h4>
           <p class="mb-5 text-white">Choose settings depending on the criteria you value the most. With no limits.</p>
           <h4 class="text-primary"><b>Performance</b></h4>
-          <p class="mb-5 text-white">Focused on speed and stability with tweaks to assist in the most demanding applications</p>
+          <p class="mb-5 text-white">Focused on speed and stability with tweaks to assist in the most demanding
+            applications</p>
         </div>
         <div class="my-3 d-none d-lg-block animate-in-down col-md-4">
-          <img class="img-fluid d-block" src="images/Phone_features_dark.png"> </div>
+          <img class="img-fluid d-block" src="images/Phone_features_dark.png">
+        </div>
         <div class="align-self-center text-md-left text-center col-lg-4 col-md-6">
           <h4 class="text-primary"><b>Battery-friendly</b></h4>
           <p class="mb-5 text-white">Extra options are provided to help tune battery consumption to the best levels</p>
           <h4 class="text-primary"><b>Added Security</b></h4>
-          <p class="mb-5 text-white">Additional security options and features are found throughout the OS. And AOSP security updates are merged regularly.</p>
+          <p class="mb-5 text-white">Additional security options and features are found throughout the OS. And AOSP
+            security updates are merged regularly.</p>
           <h4 class="text-primary"><b>Compatibility</b></h4>
-          <p class="mb-5 text-white">We bring Bliss to every device we own. And our PC builds include extras for ARM/ARM64 app compatibility&nbsp;&nbsp;</p>
+          <p class="mb-5 text-white">We bring Bliss to every device we own. And our PC builds include extras for
+            ARM/ARM64 app compatibility&nbsp;&nbsp;</p>
         </div>
       </div>
     </div>
@@ -173,10 +200,17 @@
         <div class="col-md-6 text-left mx-auto flex-center">
           <div>
             <h2 class="my-3 highlight_secondary team-header text-white no-wrap">We volunteer our time.</h2>
-            <p class="mb-3 body-font">We are a 501(c3) nonprofit, run by people that donate their free time towards the project. We do our best to bring a quality OS to your device, while working a real job on the side in most cases. Please consider showing us we're on the right track by clicking the button below and making a small contribution towards our efforts.</p> <a href="https://www.paypal.com/donate?hosted_button_id=J5SLZ7MQNCT24" target="_blank" class="btn btn-primary">Buy Us a Coffee</a>
+            <p class="mb-3 body-font">We are a 501(c3) nonprofit, run by people that donate their free time towards the
+              project. We do our best to bring a quality OS to your device, while working a real job on the side in most
+              cases. Please consider showing us we're on the right track by clicking the button below and making a small
+              contribution towards our efforts.</p> <a
+              href="https://www.paypal.com/donate?hosted_button_id=J5SLZ7MQNCT24" target="_blank"
+              class="btn btn-primary">Buy Us a Coffee</a>
           </div>
         </div>
-        <div class="col-md-5 py-5 offset-1"><img class="img-fluid d-block d-flex align-items-center justify-content-center flex-grow-1 mx-auto animate-in-right" src="images/coffee-break.svg" width="300"></div>
+        <div class="col-md-5 py-5 offset-1"><img
+            class="img-fluid d-block d-flex align-items-center justify-content-center flex-grow-1 mx-auto animate-in-right"
+            src="images/coffee-break.svg" width="300"></div>
       </div>
     </div>
   </div>
@@ -191,13 +225,18 @@
               <h3>Looking for our documentation?</h3>
               <p>We have full guides, troubleshooting tips, and more.&nbsp;</p>
               <div class="col-md-12">
-                <a class="btn btn-secondary text-right mb-3 mx-2" href="https://wiki.blissroms.com" target="_blank">Team Bliss Wiki</a>
-                <a class="btn btn-secondary mb-3 mx-2" href="https://blog.blissroms.com" target="_blank">Development blog</a>
+                <a class="btn btn-secondary text-right mb-3 mx-2" href="https://wiki.blissroms.com" target="_blank">Team
+                  Bliss Wiki</a>
+                <a class="btn btn-secondary mb-3 mx-2" href="https://blog.blissroms.com" target="_blank">Development
+                  blog</a>
               </div>
               <h3>Like to report a bug?</h3>
-              <p>We prefer to keep all our bug reports in a centralized place. Please use the link below to report any bugs using the Issues tab for the repo needed.</p>
+              <p>We prefer to keep all our bug reports in a centralized place. Please use the link below to report any
+                bugs using the Issues tab for the repo needed.</p>
               <div class="mx-auto col-md-12">
-                <a class="btn btn-secondary mb-3 mx-2" href="https://github.com/BlissRoms" target="_blank">BlissRoms&nbsp;</a><a class="btn btn-secondary mb-3 mx-2" href="https://github.com/BlissRoms-Devices" target="_blank">BlissRoms Devices</a>
+                <a class="btn btn-secondary mb-3 mx-2" href="https://github.com/BlissRoms"
+                  target="_blank">BlissRoms&nbsp;</a><a class="btn btn-secondary mb-3 mx-2"
+                  href="https://github.com/BlissRoms-Devices" target="_blank">BlissRoms Devices</a>
               </div>
             </div>
           </div>
@@ -216,12 +255,19 @@
               <div class="col-md-3" style=""><img class="img-fluid d-block" src="images/github-logo.png"></div>
               <div class="col-md-7" style="">
                 <h3>Want to help contribute towards our open source projects?</h3>
-                <p>Documentation for BlissRoms and Bliss OS can be found on our wiki, while our development update posts can be found under our blog. Please read the documentation before asking a question on our Telegram development chats!<br><br>To get a glimpse on usage statistics of Bliss, please visit our statistics page.</p>
-                <p>If you want to contribute code, download the source from our GitHub organization and submit commits through our Gerrit review system!</p>
+                <p>Documentation for BlissRoms and Bliss OS can be found on our wiki, while our development update posts
+                  can be found under our blog. Please read the documentation before asking a question on our Telegram
+                  development chats!<br><br>To get a glimpse on usage statistics of Bliss, please visit our statistics
+                  page.</p>
+                <p>If you want to contribute code, download the source from our GitHub organization and submit commits
+                  through our Gerrit review system!</p>
               </div>
               <div class="col-md-2 mx-auto" style="">
-                <a class="btn mb-3 btn-secondary" href="https://github.com/BlissRoms" target="_blank">BlissRoms GitHub</a><a class="btn mb-3 btn-secondary" href="https://github.com/BlissRoms-Devices" target="_blank">BlissRoms Devices GitHub</a>
-                <a class="btn mb-3 btn-secondary" href="https://review.blissroms.com" target="_blank">BlissRoms Gerrit</a>
+                <a class="btn mb-3 btn-secondary" href="https://github.com/BlissRoms" target="_blank">BlissRoms
+                  GitHub</a><a class="btn mb-3 btn-secondary" href="https://github.com/BlissRoms-Devices"
+                  target="_blank">BlissRoms Devices GitHub</a>
+                <a class="btn mb-3 btn-secondary" href="https://review.blissroms.com" target="_blank">BlissRoms
+                  Gerrit</a>
               </div>
             </div>
           </div>
@@ -230,10 +276,13 @@
     </div>
     <div class="container py-5">
       <div class="row">
-        <div class="col-md-6 order-2 order-md-1"> <img class="img-fluid d-block mx-auto" src="images/1571976296909.png" style="" width="50%"> </div>
+        <div class="col-md-6 order-2 order-md-1"> <img class="img-fluid d-block mx-auto" src="images/1571976296909.png"
+            style="" width="50%"> </div>
         <div class="px-md-5 col-md-6 d-flex flex-column align-items-start justify-content-center order-1 order-md-2">
           <h3 class="display-3">Downloads</h3>
-          <img src="https://img.shields.io/sourceforge/dm/blissroms.svg?style=for-the-badge&amp;logo=appveyor&amp;colorB=blue" max-width="160px" width="50%">
+          <img
+            src="https://img.shields.io/sourceforge/dm/blissroms.svg?style=for-the-badge&amp;logo=appveyor&amp;colorB=blue"
+            max-width="160px" width="50%">
           <p class="mb-3">
           </p>
           <div id="demo">
@@ -249,25 +298,32 @@
             </span>
             <h3>Please consider donating to support our project. Thanks!</h3>
             <br>
-            <a class="btn btn-primary mx-1 mb-3" href="https://www.paypal.com/donate?hosted_button_id=J5SLZ7MQNCT24" target="_blank">Donate</a>
+            <a class="btn btn-primary mx-1 mb-3" href="https://www.paypal.com/donate?hosted_button_id=J5SLZ7MQNCT24"
+              target="_blank">Donate</a>
             <a class="btn mb-3 btn-link disabled" href="https://downloads.blissroms.com">Go To Downloads</a>
             <hr width="100%" size="8" align="left">
             <p class="lead text-dark">
-              <label></label></p>
+              <label></label>
+            </p>
             <h2>Looking for our PC builds?</h2>
             <p>(Bliss OS (x86) &amp; Android-Generic builds)</p>
             <br><br>
             <a class="btn mb-3 btn-dark" target="BLANK" href="https://blissos.org">Go to the Bliss OS website</a>
-            <a class="btn mb-3 btn-dark" target="BLANK" href="https://android-generic.github.io">Go to the Android-Generic website</a>
+            <a class="btn mb-3 btn-dark" target="BLANK" href="https://android-generic.github.io">Go to the
+              Android-Generic website</a>
             <p></p>
             <hr width="100%" size="8" align="left">
             <p class="lead text-dark">
-              <label></label></p>
+              <label></label>
+            </p>
             <h2>Legacy Downloads</h2>
             <br>
-            <a class="btn btn-link" href="https://sourceforge.net/projects/blissroms/files/Q/">Android 10 (Q) device builds</a><br>
-            <a class="btn btn-link" href="https://sourceforge.net/projects/blissroms/files/Pie/">Android 9 (Pie) device builds</a><br>
-            <a class="btn btn-link" href="https://sourceforge.net/projects/blissroms/files/GSI/">Android 9 (Pie) GSI builds</a>
+            <a class="btn btn-link" href="https://sourceforge.net/projects/blissroms/files/Q/">Android 10 (Q) device
+              builds</a><br>
+            <a class="btn btn-link" href="https://sourceforge.net/projects/blissroms/files/Pie/">Android 9 (Pie) device
+              builds</a><br>
+            <a class="btn btn-link" href="https://sourceforge.net/projects/blissroms/files/GSI/">Android 9 (Pie) GSI
+              builds</a>
             <p></p>
           </div>
         </div>
@@ -283,8 +339,10 @@
               </div>
             </div>
             <ul class="nav nav-tabs nav-justified">
-              <li class="nav-item mx-auto font-weight-bold"> <a class="active nav-link" href="" data-toggle="tab" data-target="#tabone">Core Members</a> </li>
-              <li class="nav-item mx-auto font-weight-bold"> <a href="" class="nav-link" data-toggle="tab" data-target="#tabtwo">Maintainers</a> </li>
+              <li class="nav-item mx-auto font-weight-bold"> <a class="active nav-link" href="" data-toggle="tab"
+                  data-target="#tabone">Core Members</a> </li>
+              <li class="nav-item mx-auto font-weight-bold"> <a href="" class="nav-link" data-toggle="tab"
+                  data-target="#tabtwo">Maintainers</a> </li>
             </ul>
             <div class="tab-content mt-2">
               <div class="tab-pane fade show active" id="tabone" role="tabpanel">
@@ -294,7 +352,7 @@
                   $.ajax({
                     type: "GET",
                     url: "https://api.blissroms.org/api/teambliss", // TeamBliss JSON
-                    success: function(data) {
+                    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">';
@@ -318,7 +376,7 @@
                   $.ajax({
                     type: "GET",
                     url: "https://blissapi.blissroms.com/blissinfra/public/allmaintainers", // TeamBliss JSON
-                    success: function(data) {
+                    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">';
@@ -345,21 +403,26 @@
         <div class="row">
           <div class="col-md-12">
             <h1><b>A Little Bliss Gear</b></h1>
-            <p class="lead mb-4"><b>Bliss Family of ROMs has put together a Teespring store as a start to bring some stylish merchandise to our users, and help raise money for our cause. Check out a few of our selections below and follow the link to our store for more</b></p>
+            <p class="lead mb-4"><b>Bliss Family of ROMs has put together a Teespring store as a start to bring some
+                stylish merchandise to our users, and help raise money for our cause. Check out a few of our selections
+                below and follow the link to our store for more</b></p>
           </div>
         </div>
         <div class="row d-flex justify-content-between">
           <div class="col-md-4 col-lg-3 p-4"> <img class="img-fluid d-block" width="1500" src="images/560.jpg">
             <h4 class="my-3"> <b>T-Shirts</b></h4>
-            <p class="body-font"><b>Be the first one on your block to sport Bliss on your back. Various sizes and colors available.</b></p>
+            <p class="body-font"><b>Be the first one on your block to sport Bliss on your back. Various sizes and colors
+                available.</b></p>
           </div>
           <div class="col-md-4 col-lg-3 p-4"> <img class="img-fluid d-block" src="images/560 (1).jpg" width="1500">
             <h4 class="my-3"> <b>Hoodies</b></h4>
-            <p class="body-font"><b>Keep warm in style. Wr have hoodies and sweatshirts available. Various sizes and colors options too.</b></p>
+            <p class="body-font"><b>Keep warm in style. Wr have hoodies and sweatshirts available. Various sizes and
+                colors options too.</b></p>
           </div>
           <div class="col-md-4 col-lg-3 p-4"> <img class="img-fluid d-block" src="images/560 (2).jpg" width="1500">
             <h4 class="my-3"> <b>Tank Tops</b></h4>
-            <p class="body-font"><b>It's all about the Bliss when you are wearing one of our tank tops. Various sizes and colors available.</b></p>
+            <p class="body-font"><b>It's all about the Bliss when you are wearing one of our tank tops. Various sizes
+                and colors available.</b></p>
           </div>
         </div>
         <div class="row">
@@ -367,7 +430,10 @@
             <div class="card">
               <div class="card-body">
                 <h4 class="card-title"><b>Want More?</b></h4>
-                <p class="card-text body-font">We are constantly updating our selection of apparel, adding more cool designs and options as we go. So make sure you check back for any updates.&nbsp;</p> <a class="btn btn-primary" href="https://teespring.com/stores/bliss-family-store-2">Visit Our Teespring Store&nbsp;<i class="fa fa-shopping-cart fa-fw"></i></a>
+                <p class="card-text body-font">We are constantly updating our selection of apparel, adding more cool
+                  designs and options as we go. So make sure you check back for any updates.&nbsp;</p> <a
+                  class="btn btn-primary" href="https://teespring.com/stores/bliss-family-store-2">Visit Our Teespring
+                  Store&nbsp;<i class="fa fa-shopping-cart fa-fw"></i></a>
               </div>
             </div>
           </div>
@@ -375,90 +441,94 @@
       </div>
     </div>
     <!-- START OF BLISSLABS -->
-  <div class="py-5 text-light cover" style="background-color: #343a40;">
-    <div class="container" style="max-width: 100%;">
-	  <div class="row">
-	    <div class="col-md-12">
-		    <div class="row">
-				<div class="d-flex flex-column justify-content-center p-3 col-md-8 offset-lg-1 align-items-start order-1 order-md-1">
-					<h1 class="mb-3">A BlissLabs Project</h1>
-					<p class="lead">We are part of a larger community of open-source projects called BlissLabs. Explore more about the other BlissLabs projects below:<br></p>
-					<a class="btn btn-primary" target="_blank" href="https://blisslabs.org">Learn More</a>
-				</div>
-				<div class="col-md-4 col-lg-3 order-2 order-md-2 p-0"> <img class="img-fluid d-block justify-content-between align-items-center" src="https://blisslabs.org/assets/images/bliss_labs_logo.svg" style="width: 20vw;"> </div>
-		    </div>
-	    </div>
-      </div>
-      <div class="row">
-        <div class="col-md-12">
-          <div class="carousel slide" data-ride="carousel" id="carousel">
-            <div class="carousel-inner">
-              <div id="carousel-slider"> </div>
+    <div class="py-5 text-light cover" style="background-color: #343a40;">
+      <div class="container" style="max-width: 100%;">
+        <div class="row">
+          <div class="col-md-12">
+            <div class="row">
+              <div
+                class="d-flex flex-column justify-content-center p-3 col-md-8 offset-lg-1 align-items-start order-1 order-md-1">
+                <h1 class="mb-3">A BlissLabs Project</h1>
+                <p class="lead">We are part of a larger community of open-source projects called BlissLabs. Explore more
+                  about the other BlissLabs projects below:<br></p>
+                <a class="btn btn-primary" target="_blank" href="https://blisslabs.org">Learn More</a>
+              </div>
+              <div class="col-md-4 col-lg-3 order-2 order-md-2 p-0"> <img
+                  class="img-fluid d-block justify-content-between align-items-center"
+                  src="https://blisslabs.org/assets/images/bliss_labs_logo.svg" style="width: 20vw;"> </div>
             </div>
-            <a class="carousel-control-prev" href="#carousel" role="button" data-slide="prev">
-              <span class="carousel-control-prev-icon"></span>
-              <span class="sr-only">Previous</span>
-            </a>
-            <a class="carousel-control-next" href="#carousel" role="button" data-slide="next">
-              <span class="carousel-control-next-icon"></span>
-              <span class="sr-only">Next</span>
-            </a>
           </div>
-          <!---------------->
-		  <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/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;" >';
+        </div>
+        <div class="row">
+          <div class="col-md-12">
+            <div class="carousel slide" data-ride="carousel" id="carousel">
+              <div class="carousel-inner">
+                <div id="carousel-slider"> </div>
+              </div>
+              <a class="carousel-control-prev" href="#carousel" role="button" data-slide="prev">
+                <span class="carousel-control-prev-icon"></span>
+                <span class="sr-only">Previous</span>
+              </a>
+              <a class="carousel-control-next" href="#carousel" role="button" data-slide="next">
+                <span class="carousel-control-next-icon"></span>
+                <span class="sr-only">Next</span>
+              </a>
+            </div>
+            <!---------------->
+            <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/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 += '<div class="carousel-item" >';
+                      newContent = 'NONE';
                     }
-                    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);
                 }
-                // 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>
-          <!---------------->
+              })
+            </script>
+            <!---------------->
+          </div>
         </div>
       </div>
     </div>
-  </div>
-  <!-- END OF BLISSLABS -->
+    <!-- END OF BLISSLABS -->
     <div class="py-3 bg-dark">
       <div class="container">
         <div class="row">
@@ -470,7 +540,7 @@
               <li> <a href="https://www.facebook.com/BlissFamilyOfROMs/">Bliss Facebook</a> </li>
               <li> <a href="https://twitter.com/Bliss_Roms">Bliss Twitter</a> </li>
               <li> <a href="https://www.linkedin.com/company/stayblissful">Bliss LinkedIn</a> </li>
-			  <li> <a href="https://discord.gg/wwc4Aua4fp">Bliss Discord</a> </li>
+              <li> <a href="https://discord.gg/wwc4Aua4fp">Bliss Discord</a> </li>
             </ul>
           </div>
           <div class="col-lg-3 col-6 p-3">
@@ -495,7 +565,8 @@
           <div class="col-lg-3 col-md-3 p-3">
             <h5> <b>Follow us</b> </h5>
             <div class="row">
-              <div class="col-md-12 d-flex align-items-center my-2 justify-content-center"> <a href="https://www.facebook.com/BlissFamilyOfROMs/" class="">
+              <div class="col-md-12 d-flex align-items-center my-2 justify-content-center"> <a
+                  href="https://www.facebook.com/BlissFamilyOfROMs/" class="">
                   <i class="d-block fa fa-facebook-official text-muted mr-2 fa-2x"></i>
                 </a> <a href="https://www.instagram.com/blissroms/">
                   <i class="d-block fa fa-instagram text-muted mx-2 fa-2x"></i>
@@ -522,12 +593,16 @@
     <!-- JavaScript dependencies -->
     <script src="js/mainani.js" type="text/javascript"></script>
     <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
-    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
-    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"
+      integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49"
+      crossorigin="anonymous"></script>
+    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"
+      integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy"
+      crossorigin="anonymous"></script>
     <!-- Script: Smooth scrolling between anchors in the same page -->
     <script src="js/smooth-scroll.js"></script>
     <script src="js/conditionize.js"></script>
   </div>
 </body>
 
-</html>
+</html>
\ No newline at end of file
