diff --git a/bfor.html b/bfor.html
index 5dc6d79..eda93e3 100644
--- a/bfor.html
+++ b/bfor.html
@@ -18,6 +18,8 @@
   <!-- Script: Animated entrance -->
   <script src="js/animate-in.js"></script>
   <link rel="stylesheet" href="css/animations.css">
+  <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <script> (adsbygoogle = window.adsbygoogle || []).push({ google_ad_client: "ca-pub-7639560510014441", enable_page_level_ads: true }); </script>
+
 </head>
 
 <body class="" style="">
@@ -44,6 +46,12 @@
           <li class="nav-item mx-2">
             <a class="nav-link" href="bfor.html"><b><b>Non Profit</b></b></a>
           </li>
+		  <li class="nav-item mx-2">
+            <a class="nav-link" href="blog.html"><b><b>Blog</b></b></a>
+          </li>
+		  <li class="nav-item mx-2">
+            <a class="nav-link" href="index.html#gear"><b><b>Gear</b></b></a>
+          </li>
         </ul>
         <a class="btn navbar-btn mx-2 btn-primary shadowed" href="index.html#download"><b><b>Download</b></b></a>
       </div>
@@ -77,7 +85,7 @@
             </div>
             <div class="row">
               <div class="col-md-6 p-3">
-                <p>We are a U.S.A. Federal 501c3 Non-Profit Organization that aims to build and maintain various operating systems and software projects for the purposes of community growth and development. Our team of talented individuals comprise to provide training, development opportunities, build servers, download servers, design and development software, and design opportunities. Team Bliss memborship includes professionals and mentors in all fields related to Android development. Our services and source code is open to the public and provided at no cost.</p>
+                <p>We are a U.S.A. Federal 501c3 Non-Profit Organization that aims to build and maintain various operating systems and software projects for the purposes of community growth and development. Our team of talented individuals comprise to provide training, development opportunities, build servers, download servers, design and development software, and design opportunities. Team Bliss membership includes professionals and mentors in all fields related to Android development. Our services and source code is open to the public and provided at no cost.</p>
               </div>
               <div class="col-md-6 p-3">
                 <h2 class="text-muted"><span class="text-white">What are we aiming to accomplish?</span></h2>
@@ -98,7 +106,7 @@
         </div>
       </div>
       <div class="row">
-        <div class="col-md-12"><a class="btn btn-primary text-center d-flex justify-content-center" href="https://goo.gl/forms/PdiaAj1PojosmehK2" style="color: rgb(255, 255, 255);">Join Our Team</a></div>
+        <div class="col-md-12"><a class="btn btn-primary text-center d-flex justify-content-center" href="#join" style="color: rgb(255, 255, 255);">Join Our Team</a></div>
       </div>
     </div>
   </div>
@@ -2099,7 +2107,10 @@
     <div class="container text-center">
       <h1 class="text-primary display-4" style="color: #fff;">Transparency</h1>
       <p class="text-center lead" style="margin: 5%">We believe in full transparency, but we do not believe this transparency should come at a cost to our supporters. This is why we submit a yearly 990 form to the IRS. If you are interested in looking into that or any other information we submit, feel free to visit our <a style="font-weight: bold !important; color: #0080ff;" target="blank" href="https://www.guidestar.org/profile/82-3580195">Guidestar.org</a> page. If you are interested in looking into any other nonprofit open-source projects or ROMs, they can also be found on Guidestar as long as things are all on the up and up. </p>
-      <a class="btn btn-outline-primary center" target="blank" href="https://www.guidestar.org/search" style="background-color: #222; color: #fff;">Search Guidestar.org</a>
+      <div class="row">
+        <div class="col-md-6"><a href="https://www.guidestar.org/profile/82-3580195" target="_blank"><img src="https://widgets.guidestar.org/gximage2?o=9676451&amp;l=v4"></a></div>
+        <div class="col-md-6"><a class="btn btn-primary center d-inline-flex justify-content-center align-items-center flex-grow-0 btn-lg my-4 border border-primary" target="blank" href="https://www.guidestar.org/search" style="background-color: rgb(34, 34, 34); color: rgb(255, 255, 255);">Search Guidestar.org</a></div>
+      </div>
       <p class="text-center lead" style="margin: 5%">Guidestar does allow users to view the financial info for each nonprofit, but for those who don't want to give yet another site their personal info, we have posted our statements below</p>
       <!--end Two project row-->
     </div>
@@ -2110,42 +2121,42 @@
         <h3 class="display-3 text-dark" style="color: #0080ff;"><b>Expenses </b></h3>
         <section class="counting">
           <div class="layout">
-            <h2 class="text-center" style="color: #fff;">2017 Revenue (year one)</h2>
+            <h2 class="text-center" style="color: #fff;">2018 Revenue</h2>
             <div class="grid-3">
-              <span class="count1 counter text-dark" style="color: #0080ff;">899.00</span>
+              <span class="count1 counter text-dark" style="color: #0080ff;" data-count="480">0</span>
               <p>Contributions, Grants, Gifts</p>
             </div> <!-- /.col-sm-3 -->
             <div class="grid-3">
-              <span class="count2 counter text-dark" style="color: #0080ff;">0</span>
+              <span class="count2 text-dark" style="color: #0080ff;">0</span>
               <p>Program Services</p>
             </div><!-- /.col-sm-3 -->
             <div class="grid-3">
-              <span class="counter text-dark" style="color: #0080ff;">0</span>
+              <span class="text-dark" style="color: #0080ff;">0</span>
               <p>Special Events</p>
             </div><!-- /.col-sm-3 -->
             <div class="grid-3">
-              <span class="counter count4 text-dark" style="color: #0080ff;">0</span>
+              <span class="count4 text-dark" style="color: #0080ff;">0</span>
               <p>Other Revenue</p>
             </div><!-- /.col-sm-3 -->
           </div>
         </section>
         <section class="counting">
           <div class="layout">
-            <h2 class="text-center" style="color: #fff;">2017 Expenses (year one)</h2>
+            <h2 class="text-center" style="color: #fff;">2018 Expenses</h2>
             <div class="grid-3">
               <span class="count1 counter text-dark" style="color: #0080ff;">0</span>
               <p>Program Services &amp; Affiliates</p>
             </div> <!-- /.col-sm-3 -->
             <div class="grid-3">
-              <span class="count2 counter text-dark" style="color: #0080ff;">360.00</span>
+              <span class="counter count2 text-dark" style="color: #0080ff;" data-count="578">0</span>
               <p>Administration</p>
             </div><!-- /.col-sm-3 -->
             <div class="grid-3">
-              <span class="counter text-dark" style="color: #0080ff;">0</span>
+              <span class="counter count3 text-dark" style="color: #0080ff;">0</span>
               <p>Fundraising</p>
             </div><!-- /.col-sm-3 -->
             <div class="grid-3">
-              <span class="counter count4 text-dark" style="color: #0080ff;">295.00</span>
+              <span class="counter count4 text-dark" style="color: #0080ff;" data-count="0">0</span>
               <p>Other Expenses</p>
             </div><!-- /.col-sm-3 -->
           </div>
@@ -2154,19 +2165,70 @@
       </div>
     </div>
   </div>
+  <div class="py-5 bg-secondary">
+    <div class="container">
+      <div id="expenses" class="row cover text-center align-items-center justify-content-center" style="background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0)); background-position: left top; background-size: 100%; background-repeat: repeat;">
+        <section class="counting  d-flex flex-column justify-content-center align-items-center flex-grow-1">
+          <div class="layout ">
+            <h2 class="text-center" style="color: #fff;">2017 Revenue (year one)</h2>
+            <div class="grid-3" style="">
+              <span class="count1 counter text-light" style="font-size: 4em !important; color: rgb(0, 128, 255);" data-count="889">0</span>
+              <p style="font-size: .9em !important;">Contributions, Grants, Gifts</p>
+            </div> <!-- /.col-sm-3 -->
+            <div class="grid-3">
+              <span class="count2 counter text-light" style="font-size: 4em !important; color: #0080ff;">0</span>
+              <p style="font-size: .9em !important;">Program Services</p>
+            </div><!-- /.col-sm-3 -->
+            <div class="grid-3">
+              <span class="count3 counter text-light" style="font-size: 4em !important; color: #0080ff;">0</span>
+              <p style="font-size: .9em !important;">Special Events</p>
+            </div><!-- /.col-sm-3 -->
+            <div class="grid-3">
+              <span class="count4 counter text-light" style="font-size: 4em !important; color: #0080ff;">0</span>
+              <p style="font-size: .9em !important;">Other Revenue</p>
+            </div><!-- /.col-sm-3 -->
+          </div>
+        </section>
+        <div class="col-md-12">
+          <section class="counting">
+            <div class="layout">
+              <h2 class="text-center" style="color: #fff;">2017 Expenses (year one)</h2>
+              <div class="grid-3">
+                <span class="counter count1 text-light" style="font-size: 4em !important; color: #0080ff;">0</span>
+                <p style="font-size: .9em !important;">Program Services &amp; Affiliates</p>
+              </div> <!-- /.col-sm-3 -->
+              <div class="grid-3">
+                <span class="counter count2 text-light" style="font-size: 4em !important; color: #0080ff;" data-count="360">0</span>
+                <p style="font-size: .9em !important;">Administration</p>
+              </div><!-- /.col-sm-3 -->
+              <div class="grid-3">
+                <span class="counter count3 text-light" style="font-size: 4em !important; color: rgb(0, 128, 255);">0</span>
+                <p style="font-size: .9em !important;">Fundraising</p>
+              </div><!-- /.col-sm-3 -->
+              <div class="grid-3">
+                <span class="counter count4 text-light" style="font-size: 4em !important; color: #0080ff;" data-count="295">0</span>
+                <p style="font-size: .9em !important;">Other Expenses</p>
+              </div><!-- /.col-sm-3 -->
+            </div>
+          </section>
+        </div>
+        <!-- End #Contact-->
+      </div>
+    </div>
+  </div>
   <div class="row">
     <div class="container">
       <div class="row">
         <div class="col-md-6 text-center mx-auto px-5 pt-4">
           <h3 class="my-3 highlight_secondary team-header text-white"> </h3><br>
           <h2 class="my-3 highlight_secondary team-header text-white">We volunteer our time.</h2>
-          <p class="mb-3">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. </p> <a href="https://www.paypal.me/TeamBliss" class="btn btn-primary">Buy Us a Beer</a>
+          <p class="mb-3">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. </p> <a href="https://www.paypal.me/TeamBliss" class="btn btn-primary">Buy Us a Coffee</a>
         </div>
-        <div class="col-md-6 py-5"><img class="img-fluid d-block d-flex align-items-center justify-content-center flex-grow-1 mx-auto" src="images/beer.svg" width="300"></div>
+        <div class="col-md-6 py-5"><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>
-  <div class="py-5 bg-dark">
+  <div class="py-5 bg-dark" id="join">
     <div class="container">
       <div class="row">
         <div class="col-md-8 text-left">
@@ -2347,18 +2409,18 @@
         <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 justify-content-between my-2"> <a href="https://www.facebook.com/BlissFamilyOfROMs/">
-                <i class="d-block fa fa-facebook-official text-muted fa-lg mr-2"></i>
+            <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 fa-lg mx-2"></i>
+                <i class="d-block fa fa-instagram text-muted mx-2 fa-2x"></i>
               </a> <a href="https://plus.google.com/communities/118265887490106132524">
-                <i class="d-block fa fa-google-plus-official text-muted fa-lg mx-2"></i>
+                <i class="d-block fa fa-google-plus-official text-muted mx-2 fa-2x"></i>
               </a> <a href="https://github.com/BlissRoms">
-                <i class="d-block fa fa-github text-muted text-muted fa-lg mx-2 "></i>
+                <i class="d-block fa fa-github text-muted text-muted mx-2 fa-2x"></i>
               </a> <a href="https://www.reddit.com/r/BlissRoms">
-                <i class="d-block fa fa-reddit text-muted fa-lg mx-2"></i>
+                <i class="d-block fa fa-reddit text-muted mx-2 fa-2x"></i>
               </a> <a href="https://twitter.com/Bliss_Roms">
-                <i class="d-block fa fa-twitter text-muted fa-lg ml-2"></i>
+                <i class="d-block fa fa-twitter text-muted ml-2 fa-2x"></i>
               </a> </div>
           </div>
         </div>
@@ -2377,7 +2439,7 @@
   <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="https://bfintal.github.io/Counter-Up/jquery.counterup.min.js"></script>
+  <!-- <script src="https://bfintal.github.io/Counter-Up/jquery.counterup.min.js"></script> -->
   <script src="js/counter.js"></script>
 
 </body>
diff --git a/blog.html b/blog.html
new file mode 100644
index 0000000..7851239
--- /dev/null
+++ b/blog.html
@@ -0,0 +1,380 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <!-- PAGE settings -->
+  <link rel="icon" href="favicon.ico">
+  <title>Bliss ROMs</title>
+  <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://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 -->
+  <script src="js/navbar-ontop.js"></script>
+  <!-- Script: Animated entrance -->
+  <script src="js/animate-in.js"></script>
+  <link rel="stylesheet" href="css/animations.css">
+  <link rel="stylesheet" href="css/wargames.css">
+  <link rel="stylesheet" href="css/style.css">
+  <script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
+  <script> (adsbygoogle = window.adsbygoogle || []).push({ google_ad_client: "ca-pub-7639560510014441", enable_page_level_ads: true }); </script>
+</head>
+
+<body class="" style="">
+  <!-- Navbar -->
+  <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark" style="padding-right: 41px;">
+    <div class="container">
+      <a class="navbar-brand" href="index.html"><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="index.html"><b><b>Bliss ROMs</b></b></a></div>
+      </div>
+      <div class="row"></div>
+      <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbar2SupportedContent" aria-controls="navbar2SupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button>
+      <div class="collapse navbar-collapse text-center justify-content-end" id="navbar2SupportedContent">
+        <ul class="navbar-nav">
+          <li class="nav-item mx-2">
+            <a class="nav-link" href="index.html#features"><b><b>Features</b></b></a>
+          </li>
+          <li class="nav-item mx-2">
+            <a class="nav-link" href="index.html#about"><b><b>About</b></b></a>
+          </li>
+          <li class="nav-item mx-2">
+            <a class="nav-link" href="index.html#team"><b><b>Team</b></b></a>
+          </li>
+          <li class="nav-item mx-2">
+            <a class="nav-link" href="bfor.html"><b><b>Non Profit</b></b></a>
+          </li>
+          <li class="nav-item mx-2">
+            <a class="nav-link" href="blog.html"><b><b>Blog</b></b></a>
+          </li>
+          <li class="nav-item mx-2">
+            <a class="nav-link" href="index.html#gear"><b><b>Gear</b></b></a>
+          </li>
+        </ul>
+        <a class="btn navbar-btn mx-2 btn-primary shadowed" href="index.html#download"><b><b>Download</b></b></a>
+      </div>
+    </div>
+  </nav>
+  <!-- Cover -->
+  <div class="section-fade-out pt-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-12 ">
+          <div class="col-md-12">
+            <h1 class="display-3 mb-4 d-flex align-items-center justify-content-center">Bliss Family Blog</h1>
+            <h1 class="d-flex justify-content-center">A tale of our Blissfull journey</h1>
+            <blockquote class="lead blockquote" cite="https://twitter.com/DalaiLama/status/1051767186820198402" style="">
+              <footer class=""></footer>
+            </blockquote>
+          </div>
+        </div>
+      </div>
+      <div class="row">
+        <div class="col-md-12 d-inline-flex justify-content-center align-items-center mx-auto mt-5">
+          <div class="container">
+            <div class="row">
+              <div class="col-md-12 text-center">
+              </div>
+            </div>
+            <div class="row">
+              <div class="col-md-12 p-3">
+                <p class="d-flex justify-content-center align-items-center">This blog will go into a few details of our daily tasks with the Open Source projects from Team Bliss. Some of this content may not be suitible for young readers. This is a warning .</p>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+  <div class="py-5 text-center" style="">
+    <div class="container">
+      <div class="row">
+        <div class="mx-auto col-md-6">
+          <h1>Get in the loop</h1>
+          <p class="mb-4">Subscribe to get notified of new blog posts</p>
+          <form class="form-inline d-flex justify-content-center">
+            <div class="input-group"> <input type="email" class="form-control" placeholder="Your email" id="form1">
+              <div class="input-group-append"> <button class="btn btn-primary" type="button">Subscribe</button> </div>
+            </div>
+          </form>
+        </div>
+      </div>
+    </div>
+  </div>
+  <!-- Article style section -->
+  <!-- Features -->
+  <!-- Features -->
+  <!-- Carousel reviews -->
+  <!-- Call to action -->
+  <div class="py-5 text-center bg-dark" id="blog-040519">
+    <div class="container">
+      <div class="row">
+        <div class="col-md-12">
+          <h1 class="d-flex justify-content-center">Friday - April 5th, 2019</h1>
+        </div>
+      </div>
+      <div class="row">
+        <div id="content" class="col-md-12 d-flex flex-grow-1 align-items-stretch justify-content-center w-75">
+          <div id="wargames" class="d-flex flex-grow-1 align-items-center justify-content-center w-100">
+            <pre class="d-flex flex-grow-1 align-items-center justify-content-start w-100">			<code class="d-flex flex-grow-1 align-items-center justify-content-start w-100">
+*********************************************
+__________.____    .___  _________ _________ 
+\______   \    |   |   |/   _____//   _____/ 
+ |    |  _/    |   |   |\_____  \ \_____  \  
+ |    |   \    |___|   |/        \/        \ 
+ |______  /_______ \___/_______  /_______  / 
+        \/        \/           \/        \/  
+*********************************************
+************** Welcome to the ***************
+**************** Bliss Blog *****************
+*********************************************
+
+Hello,
+
+This will be the start of us hosting our own 
+blog. Since this is the first post, we thought
+we would keep things simple. 
+
+We will be experimenting a bit with how to 
+present these in the easiest way possible for
+our teammates, and as we do that, things on 
+this blog might change.
+
+Just be patient and give us kudos if we're 
+doing something right. 
+	
+		
+Thanks again :)
+
+
+</code></pre>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+  <div class="py-5 bg-secondary" id="blog-050219">
+    <div class="container">
+      <div class="row">
+        <div class="col-md-12">
+          <h1 class="d-flex justify-content-center">Thursday - May 2nd, 2019</h1>
+        </div>
+      </div>
+      <div class="row">
+        <div class="px-5 col-md-8 text-center mx-auto">
+          <div id="wrap_a">
+            <h2 class="my-3">An adventure in Bliss development</h2>
+            <div id="output_a"></div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+  <div class="row" style=" margin-right: 15px; margin-left: 15px;">
+    <div class="container">
+      <div class="row">
+        <div class="col-md-6 text-center mx-auto px-5 pt-4">
+          <h3 class="my-3 highlight_secondary team-header text-white"> </h3><br>
+          <h2 class="my-3 highlight_secondary team-header text-white">We volunteer our time.</h2>
+          <p class="mb-3">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. </p> <a href="https://www.paypal.me/TeamBliss" class="btn btn-primary">Buy Us a Coffee</a>
+        </div>
+        <div class="col-md-6 py-5"><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>
+  <div class="py-5" id="team" style="">
+    <div class="container">
+      <div class="row">
+        <div class="mx-auto col-md-12 text-center">
+          <h3 class="display-3">Who we are</h3>
+        </div>
+      </div>
+      <div class="row">
+        <div class="col-lg-6">
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/w7i8JBSfddUp88DpBjjdT_PBODfKTiFV8TKHqyZnsU3m0-ppYXsuafqDtBxakFYW3mjIahKkFYBepZIGRQ=w1920-h1080-no" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4><b>Jack Eagle&nbsp;</b>- CEO&nbsp; / Founder / Developer</h4>
+              <p class="mb-0">&nbsp;</p>
+            </div>
+          </div>
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/xhKBfn9HcjWayS9gQizUuh7JATtI4i-OvVv9Q6XPy5v5IyiI44lqRoxtMIyI3rlLc7OCyparEB9OqGT_Vg=w1920-h1080-no" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4><b>Vaughn Newman</b> -&nbsp;Board Member / Admin / Developer</h4>
+              <p class="mb-0">&nbsp;</p>
+            </div>
+          </div>
+        </div>
+        <div class="col-lg-6">
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/hcV4Tp81H4TJskQhpKckcDBqwnETos_ZOxXsQbiZGOT5OxMC-3pOD5i22j1tPiaubWW74tmnwB0ixvGwELQ=w1920-h1080-no" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4><b>Jon West&nbsp;</b>- CTO / Incorporator / Developer</h4>
+              <p class="mb-0">&nbsp;</p>
+            </div>
+          </div>
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/JOdHk7TYY-SLjAANLuK7t68Oz6w4fDFody-Uwj3rtH6oSZkljniUceYFQ52rbJXeBv4kDgoGhrtamLJlwZc=w1920-h1080-no" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4> <b>Antonio Luciano</b>&nbsp;- Board Member /&nbsp;Project Manager /&nbsp;App Developer</h4>
+              <p class="mb-0">&nbsp;</p>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="row">
+        <div class="col-lg-6">
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/LZrBsYT1S4qQI92uCuWx34QSGDcKpwY1G2h3LXT3tEvMPuSA8d6tiY7CsLYvBCznXk4sJhgr6UFk8pg1oA=w1920-h1080-no" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4><b>BitO BSessiOn</b>&nbsp;- Board Member / Developer</h4>
+              <p class="mb-0">&nbsp;</p>
+            </div>
+          </div>
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/iu4p6sC5xbTmz7gF5eYCucSHuI_1SBJnRkfNWcNQ6Cw7oCt5ryMHaU_DXpjWEgGX43SnPRs4dSjErXU=w1920-h1080-no" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4> <b>Customworx&nbsp;</b>- Board Member / Graphic Designer </h4>
+              <p class="mb-0">&nbsp;</p>
+            </div>
+          </div>
+        </div>
+        <div class="col-lg-6">
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/eRqBEkS4_cWFEkLce4sVRmyCkAwgsGZwIg1kE12_gjBaghKQ8Omc6V2UJT6q6LwZS8l-LkutUrskyeLFrd0=w1920-h1080-no" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4><b>Evan Galvin</b>&nbsp;- Board Member / Product Technology Strategist</h4>
+              <p class="mb-0">&nbsp;</p>
+            </div>
+          </div>
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/a-/AAuE7mC91eukOeGZ1fU2mULqdlLqrcsYmUWGjZZMoXwMAIk=s1920-p-no-il" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4> <b>Donna West</b> - Board Member / Treasurer</h4>
+              <p class="mb-0">&nbsp;</p>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+  <div class="py-4 text-center" style="">
+    <div class="container">
+      <div class="row">
+        <div class="mx-auto col-md-8">
+          <h1 class="mb-3">Bliss Family Projects</h1>
+          <p class="lead">The Bliss Family projects we currently support can be found below: </p>
+        </div>
+      </div>
+      <div class="row">
+        <div class="col-lg-4 p-3">
+          <div class="card">
+            <div class="card-body p-4"> <img class="img-fluid d-block mb-3 mx-auto rounded-circle" src="images/invictrix.jpg" width="150">
+              <h1>Invictrīx ROM</h1>
+              <a href="https://t.me/InvictusROM" target="_blank"><i class="fab fa-telegram"></i></a>
+              <a href="https://plus.google.com/communities/109716291977795337501" target="_blank"><i class="fab fa-google-plus"></i></a>
+              <p class="mb-0">Invictrīx ROM emphasizes performance, offering heavy optimizations along with a unique dark themed style.</p>
+            </div>
+          </div>
+        </div>
+        <div class="col-lg-4 p-3 col-md-6">
+          <div class="card">
+            <div class="card-body p-4"> <img class="img-fluid d-block mb-3 mx-auto rounded-circle" src="images/soap.jpg" width="150">
+              <h1>SOAP ROM</h1>
+              <a href="https://plus.google.com/u/0/107610198397215674589" target="_blank"><i class="fab fa-google-plus"></i></a>
+              <p class="mb-0">SOAP is an AOSP ROM that focuses on being a slim and clean ROM.</p>
+            </div>
+          </div>
+        </div>
+        <div class="col-lg-4 p-3 col-md-6">
+          <div class="card">
+            <div class="card-body p-4"> <img class="img-fluid d-block mb-3 mx-auto rounded-circle" src="images/xtremis.jpg" width="150">
+              <h1>Xtremis Project</h1>
+              <a href="#" target="_blank"><i class="fab fa-telegram"></i></a>
+              <a href="#" target="_blank"><i class="fab fa-google-plus"></i></a>
+              <p class="mb-0">Currently pre-release, this project is progressing steadily and will soon have more details to share. Please check in later.</p>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+  <!-- Footer -->
+  <div class="py-3 bg-dark">
+    <div class="container">
+      <div class="row">
+        <div class="col-lg-3 col-6 p-3">
+          <h5> <b>Socials</b></h5>
+          <ul class="list-unstyled text-primary">
+            <li class="text-primary"> <a href="https://t.me/Team_Bliss_Community" class="text-info">BlissROMs Telegram</a> </li>
+            <li> <a href="https://t.me/blissx86" contenteditable="true" class="text-info">Bliss OS Telegram</a> </li>
+            <li> <a href="https://www.facebook.com/BlissFamilyOfROMs/" class="text-info">Bliss Facebook</a> </li>
+            <li> <a href="https://twitter.com/Bliss_Roms" class="text-info">Bliss Twitter</a> </li>
+            <li> <a href="https://plus.google.com/communities/118265887490106132524" class="text-info">Bliss G+</a> </li>
+          </ul>
+        </div>
+        <div class="col-lg-3 col-6 p-3">
+          <h5> <b>Sources</b></h5>
+          <ul class="list-unstyled">
+            <li> <a href="https://review.blissroms.com" class="text-info">BlissROMs Gerrit Review</a> </li>
+            <li> <a href="https://github.com/BlissRoms" class="text-info">BlissROMs GitHub</a> </li>
+            <li> <a href="https://github.com/BlissRoms-Devices" style="" class="text-info">BlissROMs-Devices GitHub</a> </li>
+            <li> <a href="https://github.com/BlissRoms-Kernels" class="text-info">BlissROMs-Kernels GitHub</a> </li>
+            <li> <a href="https://github.com/BlissRoms-Vendor" class="text-info">BlissROMs-Vendor GitHub</a> </li>
+            <li> <a href="https://github.com/BlissRoms-x86" class="text-info">Bliss OS GitHub</a> </li>
+            <li> <a href="https://github.com/BlissRoms-pine64" class="text-info">BlissROMs-PINE64 GitHub</a> </li>
+          </ul>
+        </div>
+        <div class="col-lg-3 col-6 p-3">
+          <h5>Subreddits</h5>
+          <ul class="list-unstyled">
+            <li> <a href="https://www.reddit.com/r/BlissRoms" class="text-info">BlissROMs</a> </li>
+            <li> <a href="https://www.reddit.com/r/BlissOS" class="text-info">Bliss OS</a> </li>
+            <li> <a href="https://www.reddit.com/r/TeamBliss" class="text-info">TeamBliss</a> </li>
+          </ul>
+        </div>
+        <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="">
+                <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>
+              </a> <a href="https://plus.google.com/communities/118265887490106132524">
+                <i class="d-block fa fa-google-plus-official text-muted mx-2 fa-2x"></i>
+              </a> <a href="https://github.com/BlissRoms">
+                <i class="d-block fa fa-github text-muted text-muted mx-2 fa-2x"></i>
+              </a> <a href="https://www.reddit.com/r/BlissRoms">
+                <i class="d-block fa fa-reddit text-muted mx-2 fa-2x"></i>
+              </a> <a href="https://twitter.com/Bliss_Roms">
+                <i class="d-block fa fa-twitter text-muted ml-2 fa-2x"></i>
+              </a> </div>
+          </div>
+        </div>
+      </div>
+      <div class="row">
+        <div class="col-md-12 text-center">
+          <p class="mb-0 mt-2">© 2019 Bliss Family of ROMs. All rights reserved</p>
+        </div>
+      </div>
+    </div>
+  </div>
+  <!-- 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: Smooth scrolling between anchors in the same page -->
+  <script src="js/smooth-scroll.js"></script>
+  <!-- <script src="https://bfintal.github.io/Counter-Up/jquery.counterup.min.js"></script> -->
+  <script src="js/counter.js"></script>
+  <script src="js/adv.js"></script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/css/animations.css b/css/animations.css
index 4abca20..ba7e644 100644
--- a/css/animations.css
+++ b/css/animations.css
@@ -566,8 +566,26 @@
   text-align: center;
  /* color: #0080ff;*/
 }
+@media (max-width:867px) {
+  .display-3 { font-size: 4.4rem;}
+  .navbar-ontop { background-color: #303030 !important;}
+}
+@media (max-width:650px) {
+  .display-3 { font-size: 4.1rem;}
+  .navbar-ontop { background-color: #303030 !important;}
+}
+@media (max-width:550px) {
+  .display-3 { font-size: 3.8rem;}
+}
+@media (max-width:430px) {
+  .display-3 { font-size: 2.8rem;}
+}
+@media (max-width:400px) {
+  .display-3 { font-size: 2.5rem;}
+}
 @media (max-width:450px) {
   .animation .device .display div div {width:100%;max-width:100%;font-size:12px !important;}
+  .display-3 { font-size: 3.0rem;}
 }
   .animation .device .display .slide1 div {margin-top:0px;}
 .animation .device .display div div em {
diff --git a/css/style.css b/css/style.css
new file mode 100644
index 0000000..bfb063e
--- /dev/null
+++ b/css/style.css
@@ -0,0 +1,41 @@
+#wrap_a {
+  max-width: 800px;
+  margin: 0 auto;
+}
+
+#output_a {
+  margin: 2em 1em;
+  text-align: left;
+  /* font-family: monospace; */
+  font-size: 1.1em;
+  line-height: 1.5;
+  color: #fc9;
+}
+#output_a .title {
+  color: white;
+  text-align: center;
+}
+#output_a ul {
+  color: white;
+}
+#output_a ul li {
+  margin: 1em;
+}
+#output_a ul a {
+  color: lightblue;
+  text-decoration: none;
+}
+#output_a ul a.win {
+  color: limegreen;
+}
+#output_a ul a.lose {
+  color: red;
+}
+#output_a ul a:hover {
+  color: white;
+}
+#output_a .inv {
+  color: #ca9;
+  font-size: 0.8em;
+  padding-top: 2em;
+}
diff --git a/css/wargames.css b/css/wargames.css
new file mode 100644
index 0000000..1c360b9
--- /dev/null
+++ b/css/wargames.css
@@ -0,0 +1,189 @@
+#wargames{
+position:relative;
+     background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAIAAAAiOjnJAAAD0ElEQVR4Ae3WsQ2AMBDFUCAZAFGw/6KREDvE3bsBXFiW7p/38x6Ogd0Grt1APAZ+A8LSQWJAWIlW0DnGYIGB7QbmWms7FJABr1ADiQFhJVpBhaWBxIDxnmgFNd41kBjwChOtoMLSQGJAWIlWUONdA4kB4z3RCuoVaiAxIKxEK6iwNJAYMN4TraDGuwYSA15hohVUWBpIDAgr0QpqvGsgMWC8J1pBvUINJAaElWgFFZYGEgPGe6IV1HjXQGLAK0y0ggpLA4kBYSVaQY13DSQGjPdEK6hXqIHEgLASraDC0kBiwHhPtIIa7xpIDHiFiVZQYWkgMSCsRCuo8a6BxIDxnmgF9Qo1kBgQVqIVVFgaSAwY74lWUONdA4kBrzDRCiosDSQGhJVoBTXeNZAYMN4TraBeoQYSA8JKtIIKSwOJAeM90QpqvGsgMeAVJlpBhaWBxICwEq2gxrsGEgPGe6IV1CvUQGJAWIlWUGFpIDFgvCdaQY13DSQGvMJEK6iwNJAYEFaiFdR410BiwHhPtIJ6hRpIDAgr0QoqLA0kBoz3RCuo8a6BxIBXmGgFFZYGEgPCSrSCGu8aSAwY74lWUK9QA4kBYSVaQYWlgcSA8Z5oBTXeNZAY8AoTraDC0kBiQFiJVlDjXQOJAeM90QrqFWogMSCsRCuosDSQGDDeE62gxrsGEgNeYaIVVFgaSAwIK9EKarxrIDFgvCdaQb1CDSQGhJVoBRWWBhIDxnuiFdR410BiwCtMtIIKSwOJAWElWkGNdw0kBoz3RCuoV6iBxICwEq2gwtJAYsB4T7SCGu8aSAx4hYlWUGFpIDEgrEQrqPGugcSA8Z5oBfUKNZAYEFaiFVRYGkgMGO+JVlDjXQOJAa8w0QoqLA0kBoSVaAU13jWQGDDeE62gXqEGEgPCSrSCCksDiQHjPdEKarxrIDHgFSZaQYWlgcSAsBKtoMa7BhIDxnuiFdQr1EBiQFiJVlBhaSAxYLwnWkGNdw0kBrzCRCuosDSQGBBWohXUeNdAYsB4T7SCeoUaSAwIK9EKKiwNJAaM90QrqPGugcSAV5hoBRWWBhIDwkq0ghrvGkgMGO+JVlCvUAOJAWElWkGFpYHEgPGeaAU13jWQGPAKE62gwtJAYkBYiVZQ410DiQHjPdEK6hVqIDEgrEQrqLA0kBgw3hOtoMa7BhIDXmGiFVRYGkgMCCvRCmq8ayAxYLwnWkG9Qg0kBoSVaAUVlgYSA8Z7ohXUeNdAYsArTLSCCksDiQFhJVpBjXcNJAaM90QrqFeogcSAsBKtoMLSQGLAeE+0gn6NXXdvK2/RcgAAAABJRU5ErkJggg==); /*Noise*/
+-webkit-border-radius:20px;
+-moz-border-radius:20px;
+border-radius:20px;
+padding:10px 25px 20px;
+-webkit-box-shadow:0px 0px 0 rgb(194,197,198),0px 1px 0 rgb(191,194,195),0px 2px 0 rgb(189,192,193),0px 3px 0 rgb(186,189,190),0px 4px 0 rgb(183,186,187),0px 5px 0 rgb(180,183,184),0px 6px 0 rgb(178,181,182),0px 7px 0 rgb(175,178,179),0px 8px 0 rgb(172,175,176),0px 9px 0 rgb(169,172,173),0px 10px 0 rgb(167,170,171),0px 11px 0 rgb(164,167,168),0px 12px 0 rgb(161,164,165),0px 13px 0 rgb(158,161,162),0px 14px 0 rgb(156,159,160),0px 15px 0 rgb(153,156,157),0px 16px 0 rgb(150,153,154), 0px 17px 0 rgb(147,150,151),0px 18px 17px rgba(0,0,0,0.15),0px 18px 1px rgba(0,0,0,0.5),0px 0px 17px rgba(0,0,0,.2);
+-moz-box-shadow:0px 0px 0 rgb(194,197,198),0px 1px 0 rgb(191,194,195),0px 2px 0 rgb(189,192,193),0px 3px 0 rgb(186,189,190),0px 4px 0 rgb(183,186,187),0px 5px 0 rgb(180,183,184),0px 6px 0 rgb(178,181,182),0px 7px 0 rgb(175,178,179),0px 8px 0 rgb(172,175,176),0px 9px 0 rgb(169,172,173),0px 10px 0 rgb(167,170,171),0px 11px 0 rgb(164,167,168),0px 12px 0 rgb(161,164,165),0px 13px 0 rgb(158,161,162),0px 14px 0 rgb(156,159,160),0px 15px 0 rgb(153,156,157),0px 16px 0 rgb(150,153,154), 0px 17px 0 rgb(147,150,151),0px 18px 17px rgba(0,0,0,0.15),0px 18px 1px rgba(0,0,0,0.5),0px 0px 17px rgba(0,0,0,.2);
+    box-shadow:0px 0px 0 rgb(194,197,198),0px 1px 0 rgb(191,194,195),0px 2px 0 rgb(189,192,193),0px 3px 0 rgb(186,189,190),0px 4px 0 rgb(183,186,187),0px 5px 0 rgb(180,183,184),0px 6px 0 rgb(178,181,182),0px 7px 0 rgb(175,178,179),0px 8px 0 rgb(172,175,176),0px 9px 0 rgb(169,172,173),0px 10px 0 rgb(167,170,171),0px 11px 0 rgb(164,167,168),0px 12px 0 rgb(161,164,165),0px 13px 0 rgb(158,161,162),0px 14px 0 rgb(156,159,160),0px 15px 0 rgb(153,156,157),0px 16px 0 rgb(150,153,154), 0px 17px 0 rgb(147,150,151),0px 18px 17px rgba(0,0,0,0.15),0px 18px 1px rgba(0,0,0,0.5),0px 0px 17px rgba(0,0,0,.2);
+text-align:left;
+}
+
+#wargames:after{
+content:"";
+width:100%;
+height:20%;
+position:absolute;
+bottom:-15px;
+left:0;
+/* -webkit-box-shadow:0px 20px 10px -10px #000;
+-moz-box-shadow:0px 20px 10px -10px #000;
+ box-shadow:0px 20px 10px -10px #000; */s
+}
+
+#wargames h2{
+color:#edf2f3;
+text-align:center;
+padding-bottom:20px;
+text-shadow:0px 0px 0 rgb(48,48,45),0px 1px 0 rgb(21,21,18),0px 2px 0 rgb(-6,-6,-9),0px 3px 0 rgb(-33,-33,-36), 0px 6px 0 rgb(-114,-114,-117),0px 7px 6px rgba(0,0,0,0.85);
+font:600 2.9em Arial, Helvetica, Geneva, sans-serif;
+text-transform:uppercase;
+letter-spacing:.3em;
+}
+
+#wargames pre{
+-webkit-border-radius:50px;
+-moz-border-radius:50px;
+border-radius:50px;
+-webkit-filter:blur(0.3px);
+border-left:20px solid #1b1b1b;
+border-right:20px solid #1c1c1c;
+border-top:25px solid #0f1310;
+border-bottom:25px solid #0f1310;
+overflow:hidden;
+position:relative;
+color:#7cb4fc;
+padding:1.5em 1.5em 1.5em 5em;
+/*-webkit-box-shadow:inset 0 0 0 9px rgba(21,21,20,0.6),  0 1px 60px 10px rgba(40,46,40,9), inset 0 1px 80px 5px rgba(0,0,0,0.97); 
+-moz-box-shadow:inset 0 0 0 9px rgba(21,21,20,0.6),  0 1px 60px 10px rgba(40,46,40,9), inset 0 1px 80px 5px rgba(0,0,0,0.97);
+box-shadow:inset 0 0 0 9px rgba(21,21,20,0.6),  0 1px 60px 10px rgba(40,46,40,9), inset 0 1px 80px 5px rgba(0,0,0,0.97); */
+background-color:#162030;
+text-shadow:#89d3fd 0 -1px 35px;
+}
+
+#wargames pre:before{
+content:"";
+width:100%;
+height:20%;
+position:absolute;
+top:0;
+left:0;
+background:-webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(40,66,25,0.2)), color-stop(70%,rgba(32,57,17,0)), color-stop(99%,rgba(28,53,13,0)));
+-webkit-animation:scan 6.5s 1.0s infinite ease-in-out  forwards;
+-moz-animation:scan 6.5s 1.0s infinite ease-in-out  forwards;
+-ms-animation:scan 6.5s 1.0s infinite ease-in-out  forwards;
+ -o-animation:scan 6.5s 1.0s infinite ease-in-out  forwards;
+    animation:scan 6.5s 1.0s infinite ease-in-out  forwards;
+}
+
+
+#wargames pre:after{
+content:"";
+width:100%;
+height:100%;
+position:absolute;
+top:0;
+left:0;
+opacity:1;
+background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAECAYAAABP2FU6AAAAE0lEQVQIHWP4//8/AxMDFMiDWQA2wAMhzy0v7QAAAABJRU5ErkJggg==); /*scanline*/
+ repeat;
+-webkit-filter:drop-shadow(15.32px 2.18px 7.35px rgba(20, 184, 189, 1));
+}
+
+#wargames code{
+background:#fff;
+border:1px solid #DDD;
+padding:0.1em 0.2em;
+word-break: break-word !important;
+overflow-wrap: break-word;
+}
+
+#wargames pre code{
+-webkit-box-shadow:none;
+-moz-box-shadow:none;
+box-shadow:none;
+background-color:transparent;
+border-style:none;
+font:400 19px VT323, monospace;
+word-break: break-word !important;
+overflow-wrap: break-word;
+}
+
+#wargames pre code:last-child:after{
+content:"\220E";
+-webkit-animation:cursor .95s ease-in-out infinite;
+-moz-animation:cursor .95s ease-in-out infinite;
+-ms-animation:cursor .95s ease-in-out infinite;
+ -o-animation:cursor .95s ease-in-out infinite;
+    animation:cursor .95s ease-in-out infinite;
+font-size:120%;
+display: contents;
+}
+
+/*Animations*/
+
+/* Cant' get "Scan" to work in Firefox*/
+@-webkit-keyframes scan{
+from { top: -50%;
+left: 0;
+}
+
+to {
+top: 150%;
+left: 0;
+}
+}
+
+
+@keyframes scan{
+from { top: -50%;
+left: 0;
+}
+
+to {
+top: 150%;
+left: 0;
+}
+}
+
+
+@-webkit-keyframes cursor{
+from { opacity: 1.0;
+}
+
+to {
+opacity: 0.0;
+}
+}
+
+
+@-moz-keyframes cursor{
+from { opacity: 1.0;
+}
+
+to {
+opacity: 0.0;
+}
+}
+
+
+@-ms-keyframes cursor{
+from { opacity: 1.0;
+}
+
+to {
+opacity: 0.0;
+}
+}
+
+
+@-o-keyframes cursor{
+from { opacity: 1.0;
+}
+
+to {
+opacity: 0.0;
+}
+}
+
+
+@keyframes cursor{
+from { opacity: 1.0;
+}
+
+to {
+opacity: 0.0;
+}
+}
diff --git "a/images/560 \0501\051.jpg" "b/images/560 \0501\051.jpg"
new file mode 100644
index 0000000..b5a859c
--- /dev/null
+++ "b/images/560 \0501\051.jpg"
Binary files differ
diff --git "a/images/560 \0502\051.jpg" "b/images/560 \0502\051.jpg"
new file mode 100644
index 0000000..591f46e
--- /dev/null
+++ "b/images/560 \0502\051.jpg"
Binary files differ
diff --git a/images/560.jpg b/images/560.jpg
new file mode 100644
index 0000000..8519c1a
--- /dev/null
+++ b/images/560.jpg
Binary files differ
diff --git a/images/coffee-break.svg b/images/coffee-break.svg
new file mode 100644
index 0000000..a09aeea
--- /dev/null
+++ b/images/coffee-break.svg
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="-200 201 599 599" style="enable-background:new -200 201 599 599;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#DADDDF;}
+	.st1{fill:#878787;}
+	.st2{fill:#787878;}
+	.st3{fill:#009CFF;}
+	.st4{fill:#6E6E6E;}
+	.st5{fill:#7D7D7D;}
+	.st6{fill:#C7CACC;}
+	.st7{fill:#008DFF;}
+	.st8{clip-path:url(#SVGID_2_);fill:#C7CACC;}
+	.st9{display:none;clip-path:url(#SVGID_2_);fill:#DADDDF;}
+</style>
+<g id="surface1">
+	<path class="st0" d="M-81.2,345.6l45.1,454.2h270.9L280,345.6H-81.2z"/>
+	<path class="st1" d="M-117.3,263h433.5v82.6h-433.5L-117.3,263L-117.3,263z"/>
+	<path class="st2" d="M-81.2,263H280l-9.1-61.9H-72.2L-81.2,263z"/>
+	<path class="st3" d="M289,438.5l-27.1,227.1H-63.2l-27.1-227.1H289z"/>
+	<path class="st4" d="M270.9,201.1h-72.3L144.5,263h135.4L270.9,201.1z"/>
+	<path class="st5" d="M316.1,263H90.3l-72.3,82.6h298V263z"/>
+	<path class="st6" d="M246.1,686.3l2-20.6H-49.5l2,20.6H246.1z"/>
+	<path class="st6" d="M277.9,366.4l2-20.6H-81.3l2,20.6H277.9z"/>
+	<path class="st7" d="M289,438.5h-55.8C180.6,541.8,99.4,614.1,9.1,665.7h252.8L289,438.5z"/>
+</g>
+<g>
+	<defs>
+		<path id="SVGID_1_" d="M175,547.8c0.4,0,0.7-0.1,1.1-0.1c-1.9,3.7-3.8,7.4-5.7,11.1c-4.6,9-10.2,17.6-17,25.2
+			c-2.4,2.7-5.5,4.5-8.6,6.2c-4.6,2.4-9.5,4.1-14.5,5.3c-8.6,2.2-17.5,3.2-26.4,3.6c-1.3,0-2.5,0.1-3.8,0.1
+			c9.2-12.3,19.6-24,31.8-33.5c6.3-4.8,13.1-9,20.4-12.2c5.5-2.3,11.2-3.9,17.1-4.9C171.2,548.3,173.1,548.1,175,547.8z M23.7,547.8
+			c-0.4,0-0.7-0.1-1.1-0.1c1.9,3.7,3.8,7.4,5.7,11.1c4.6,9,10.2,17.6,17,25.2c2.4,2.7,5.5,4.5,8.6,6.2c4.6,2.4,9.5,4.1,14.5,5.3
+			c8.6,2.2,17.5,3.2,26.4,3.6c1.3,0,2.5,0.1,3.8,0.1c-9.2-12.3-19.6-24-31.8-33.5c-6.3-4.8-13.1-9-20.4-12.2
+			c-5.5-2.3-11.2-3.9-17.1-4.9C27.5,548.3,25.6,548.1,23.7,547.8z M69.8,522.5c-0.6-0.5-1.3-1.1-2.1-1.5c-1.5,9.1-1.8,18.4-1,27.6
+			c0.5,5.3,1.4,10.6,3,15.6c0.2,0.5,0.3,1.1,0.7,1.6c0.4,0.6,1,1.1,1.6,1.5c1.8,1.4,3.5,3.1,5.2,4.6c2.3,2.2,4.6,4.5,6.8,6.8
+			c2.3,2.4,4.5,5,6.7,7.5c2.4,2.9,5.2,5.8,7.5,8.7c0.8,0.9,0.2-14,0-16.6c-2.5-13.6-3.4-15.3-9.9-32.2c-3.2-8.2-9.6-15.1-15.9-21.2
+			C71.5,524,70.6,523.3,69.8,522.5z M128.9,522.5c0.6-0.5,1.3-1.1,2.1-1.5c1.5,9.1,1.8,18.4,1,27.6c-0.5,5.3-1.4,10.6-3,15.6
+			c-0.2,0.5-0.3,1.1-0.7,1.6c-0.4,0.6-1,1.1-1.6,1.5c-1.8,1.4-3.5,3.1-5.2,4.6c-2.3,2.2-4.6,4.5-6.8,6.8c-2.3,2.4-4.5,5-6.7,7.5
+			c-2.4,2.9-4.8,5.8-7.1,8.6c-0.8,0.9-0.3-14.2-0.1-16.8c2-13.6,3.2-17.3,10.2-32.5c3.2-7,9-14.6,15.3-20.7
+			C127.2,524,128.1,523.3,128.9,522.5z M99.8,505c1.8,1.9,3.3,4.2,4.6,6.5c4.7,8.2,6.7,19.2,6.6,29.6c-1.7,3.1-2.3,4.3-3.6,7.5
+			c-2.1,5.3-4.1,10.7-5.4,16.3c-1.1,4.3-1.7,8.7-2.3,13c-0.1,0.4-0.1,0.7-0.2,1.1c-0.6-4.2-1.3-8.3-2.2-12.5
+			c-0.8-3.7-4.9-15.7-5.9-18.1c-0.8-1.9-3.1-6.5-3.1-7.1c0.6-10.5,2.7-21.7,7.7-30.3C97.2,509,98.3,506.9,99.8,505z M156.4,526.1
+			c0.7-0.3,1.4-0.7,2.2-0.9c0,7.5-2.1,14.9-5.2,21.7c-0.6,1.4-1.3,2.9-2,4.3c-0.2,0.6-0.9,0.9-1.4,1.2c-2.8,1.2-5.5,2.6-8.1,4.2
+			c-3.7,2.1-7.1,4.7-10.7,7.1c0.5-2.1,0.9-4.2,1.3-6.4c1-4.8,1.4-9.6,1.5-14.5c0-0.4,0-0.8,0.3-1.1c0.8-0.9,1.7-1.7,2.6-2.5
+			c4.3-4.1,9.1-7.8,14.3-10.7C152.8,527.6,154.6,526.9,156.4,526.1z M42.3,526.1c-0.7-0.3-1.4-0.7-2.2-0.9c0,7.5,2.1,14.9,5.2,21.7
+			c0.6,1.4,1.3,2.9,2,4.3c0.2,0.6,0.9,0.9,1.4,1.2c2.8,1.2,5.5,2.6,8.1,4.2c3.7,2.1,7.1,4.7,10.7,7.1c-0.5-2.1-0.9-4.2-1.3-6.4
+			c-1-4.8-1.4-9.6-1.5-14.5c0-0.4,0-0.8-0.3-1.1c-0.8-0.9-1.7-1.7-2.6-2.5c-4.3-4.1-9.1-7.8-14.3-10.7
+			C45.8,527.6,44.1,526.9,42.3,526.1z"/>
+	</defs>
+	<clipPath id="SVGID_2_">
+		<use xlink:href="#SVGID_1_"  style="overflow:visible;"/>
+	</clipPath>
+	<path class="st8" d="M175,547.8c0.4,0,0.7-0.1,1.1-0.1c-1.9,3.7-3.8,7.4-5.7,11.1c-4.6,9-10.2,17.6-17,25.2
+		c-2.4,2.7-5.5,4.5-8.6,6.2c-4.6,2.4-9.5,4.1-14.5,5.3c-8.6,2.2-17.5,3.2-26.4,3.6c-1.3,0-2.5,0.1-3.8,0.1
+		c9.2-12.3,19.6-24,31.8-33.5c6.3-4.8,13.1-9,20.4-12.2c5.5-2.3,11.2-3.9,17.1-4.9C171.2,548.3,173.1,548.1,175,547.8z M23.7,547.8
+		c-0.4,0-0.7-0.1-1.1-0.1c1.9,3.7,3.8,7.4,5.7,11.1c4.6,9,10.2,17.6,17,25.2c2.4,2.7,5.5,4.5,8.6,6.2c4.6,2.4,9.5,4.1,14.5,5.3
+		c8.6,2.2,17.5,3.2,26.4,3.6c1.3,0,2.5,0.1,3.8,0.1c-9.2-12.3-19.6-24-31.8-33.5c-6.3-4.8-13.1-9-20.4-12.2
+		c-5.5-2.3-11.2-3.9-17.1-4.9C27.5,548.3,25.6,548.1,23.7,547.8z M69.8,522.5c-0.6-0.5-1.3-1.1-2.1-1.5c-1.5,9.1-1.8,18.4-1,27.6
+		c0.5,5.3,1.4,10.6,3,15.6c0.2,0.5,0.3,1.1,0.7,1.6c0.4,0.6,1,1.1,1.6,1.5c1.8,1.4,3.5,3.1,5.2,4.6c2.3,2.2,4.6,4.5,6.8,6.8
+		c2.3,2.4,4.5,5,6.7,7.5c2.4,2.9,5.2,5.8,7.5,8.7c0.8,0.9,0.2-14,0-16.6c-2.5-13.6-3.4-15.3-9.9-32.2c-3.2-8.2-9.6-15.1-15.9-21.2
+		C71.5,524,70.6,523.3,69.8,522.5z M128.9,522.5c0.6-0.5,1.3-1.1,2.1-1.5c1.5,9.1,1.8,18.4,1,27.6c-0.5,5.3-1.4,10.6-3,15.6
+		c-0.2,0.5-0.3,1.1-0.7,1.6c-0.4,0.6-1,1.1-1.6,1.5c-1.8,1.4-3.5,3.1-5.2,4.6c-2.3,2.2-4.6,4.5-6.8,6.8c-2.3,2.4-4.5,5-6.7,7.5
+		c-2.4,2.9-4.8,5.8-7.1,8.6c-0.8,0.9-0.3-14.2-0.1-16.8c2-13.6,3.2-17.3,10.2-32.5c3.2-7,9-14.6,15.3-20.7
+		C127.2,524,128.1,523.3,128.9,522.5z M99.8,505c1.8,1.9,3.3,4.2,4.6,6.5c4.7,8.2,6.7,19.2,6.6,29.6c-1.7,3.1-2.3,4.3-3.6,7.5
+		c-2.1,5.3-4.1,10.7-5.4,16.3c-1.1,4.3-1.7,8.7-2.3,13c-0.1,0.4-0.1,0.7-0.2,1.1c-0.6-4.2-1.3-8.3-2.2-12.5
+		c-0.8-3.7-4.9-15.7-5.9-18.1c-0.8-1.9-3.1-6.5-3.1-7.1c0.6-10.5,2.7-21.7,7.7-30.3C97.2,509,98.3,506.9,99.8,505z M156.4,526.1
+		c0.7-0.3,1.4-0.7,2.2-0.9c0,7.5-2.1,14.9-5.2,21.7c-0.6,1.4-1.3,2.9-2,4.3c-0.2,0.6-0.9,0.9-1.4,1.2c-2.8,1.2-5.5,2.6-8.1,4.2
+		c-3.7,2.1-7.1,4.7-10.7,7.1c0.5-2.1,0.9-4.2,1.3-6.4c1-4.8,1.4-9.6,1.5-14.5c0-0.4,0-0.8,0.3-1.1c0.8-0.9,1.7-1.7,2.6-2.5
+		c4.3-4.1,9.1-7.8,14.3-10.7C152.8,527.6,154.6,526.9,156.4,526.1z M42.3,526.1c-0.7-0.3-1.4-0.7-2.2-0.9c0,7.5,2.1,14.9,5.2,21.7
+		c0.6,1.4,1.3,2.9,2,4.3c0.2,0.6,0.9,0.9,1.4,1.2c2.8,1.2,5.5,2.6,8.1,4.2c3.7,2.1,7.1,4.7,10.7,7.1c-0.5-2.1-0.9-4.2-1.3-6.4
+		c-1-4.8-1.4-9.6-1.5-14.5c0-0.4,0-0.8-0.3-1.1c-0.8-0.9-1.7-1.7-2.6-2.5c-4.3-4.1-9.1-7.8-14.3-10.7
+		C45.8,527.6,44.1,526.9,42.3,526.1z"/>
+	<path class="st9" d="M175,567.8c0.4,0,0.7-0.1,1.1-0.1c-1.9,3.7-3.8,7.4-5.7,11.1c-4.6,9-10.2,17.6-17,25.2
+		c-2.4,2.7-5.5,4.5-8.6,6.2c-4.6,2.4-9.5,4.1-14.5,5.3c-8.6,2.2-17.5,3.2-26.4,3.6c-1.3,0-2.5,0.1-3.8,0.1
+		c9.2-12.3,19.6-24,31.8-33.5c6.3-4.8,13.1-9,20.4-12.2c5.5-2.3,11.2-3.9,17.1-4.9C171.2,568.3,173.1,568.1,175,567.8z M23.7,567.8
+		c-0.4,0-0.7-0.1-1.1-0.1c1.9,3.7,3.8,7.4,5.7,11.1c4.6,9,10.2,17.6,17,25.2c2.4,2.7,5.5,4.5,8.6,6.2c4.6,2.4,9.5,4.1,14.5,5.3
+		c8.6,2.2,17.5,3.2,26.4,3.6c1.3,0,2.5,0.1,3.8,0.1c-9.2-12.3-19.6-24-31.8-33.5c-6.3-4.8-13.1-9-20.4-12.2
+		c-5.5-2.3-11.2-3.9-17.1-4.9C27.5,568.3,25.6,568.1,23.7,567.8z M69.8,542.5c-0.6-0.5-1.3-1.1-2.1-1.5c-1.5,9.1-1.8,18.4-1,27.6
+		c0.5,5.3,1.4,10.6,3,15.6c0.2,0.5,0.3,1.1,0.7,1.6c0.4,0.6,1,1.1,1.6,1.5c1.8,1.4,3.5,3.1,5.2,4.6c2.3,2.2,4.6,4.5,6.8,6.8
+		c2.3,2.4,4.5,5,6.7,7.5c2.4,2.9,5.2,5.8,7.5,8.7c0.8,0.9,0.2-14,0-16.6c-2.5-13.6-3.4-15.3-9.9-32.2c-3.2-8.2-9.6-15.1-15.9-21.2
+		C71.5,544,70.6,543.3,69.8,542.5z M128.9,542.5c0.6-0.5,1.3-1.1,2.1-1.5c1.5,9.1,1.8,18.4,1,27.6c-0.5,5.3-1.4,10.6-3,15.6
+		c-0.2,0.5-0.3,1.1-0.7,1.6c-0.4,0.6-1,1.1-1.6,1.5c-1.8,1.4-3.5,3.1-5.2,4.6c-2.3,2.2-4.6,4.5-6.8,6.8c-2.3,2.4-4.5,5-6.7,7.5
+		c-2.4,2.9-4.8,5.8-7.1,8.6c-0.8,0.9-0.3-14.2-0.1-16.8c2-13.6,3.2-17.3,10.2-32.5c3.2-7,9-14.6,15.3-20.7
+		C127.2,544,128.1,543.3,128.9,542.5z M99.8,525c1.8,1.9,3.3,4.2,4.6,6.5c4.7,8.2,6.7,19.2,6.6,29.6c-1.7,3.1-2.3,4.3-3.6,7.5
+		c-2.1,5.3-4.1,10.7-5.4,16.3c-1.1,4.3-1.7,8.7-2.3,13c-0.1,0.4-0.1,0.7-0.2,1.1c-0.6-4.2-1.3-8.3-2.2-12.5
+		c-0.8-3.7-4.9-15.7-5.9-18.1c-0.8-1.9-3.1-6.5-3.1-7.1c0.6-10.5,2.7-21.7,7.7-30.3C97.2,529,98.3,526.9,99.8,525z M156.4,546.1
+		c0.7-0.3,1.4-0.7,2.2-0.9c0,7.5-2.1,14.9-5.2,21.7c-0.6,1.4-1.3,2.9-2,4.3c-0.2,0.6-0.9,0.9-1.4,1.2c-2.8,1.2-5.5,2.6-8.1,4.2
+		c-3.7,2.1-7.1,4.7-10.7,7.1c0.5-2.1,0.9-4.2,1.3-6.4c1-4.8,1.4-9.6,1.5-14.5c0-0.4,0-0.8,0.3-1.1c0.8-0.9,1.7-1.7,2.6-2.5
+		c4.3-4.1,9.1-7.8,14.3-10.7C152.8,547.6,154.6,546.9,156.4,546.1z M42.3,546.1c-0.7-0.3-1.4-0.7-2.2-0.9c0,7.5,2.1,14.9,5.2,21.7
+		c0.6,1.4,1.3,2.9,2,4.3c0.2,0.6,0.9,0.9,1.4,1.2c2.8,1.2,5.5,2.6,8.1,4.2c3.7,2.1,7.1,4.7,10.7,7.1c-0.5-2.1-0.9-4.2-1.3-6.4
+		c-1-4.8-1.4-9.6-1.5-14.5c0-0.4,0-0.8-0.3-1.1c-0.8-0.9-1.7-1.7-2.6-2.5c-4.3-4.1-9.1-7.8-14.3-10.7
+		C45.8,547.6,44.1,546.9,42.3,546.1z"/>
+</g>
+</svg>
diff --git a/index.html b/index.html
index 5d589f8..68b6825 100644
--- a/index.html
+++ b/index.html
@@ -19,17 +19,13 @@
   <script src="js/animate-in.js"></script>
   <link rel="stylesheet" href="css/animations.css">
   <script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
-  <script> (adsbygoogle = window.adsbygoogle || []).push({
-		google_ad_client: "ca-pub-7639560510014441",
-		enable_page_level_ads: true
-	  });
-	</script>
+  <script> (adsbygoogle = window.adsbygoogle || []).push({ google_ad_client: "ca-pub-7639560510014441", enable_page_level_ads: true }); </script>
 </head>
 
 <body class="" style="">
   <!-- Navbar -->
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark" style="padding-right: 41px;">
-    <div class="container">
+    <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>
       <div class="row">
         <div class="col-md-12"><a class="navbar-brand" href="#"><b><b>Bliss ROMs</b></b></a></div>
@@ -49,6 +45,12 @@
           <li class="nav-item mx-2">
             <a class="nav-link" href="bfor.html"><b><b>Non Profit</b></b></a>
           </li>
+          <li class="nav-item mx-2">
+            <a class="nav-link" href="blog.html"><b><b>Blog</b></b></a>
+          </li>
+          <li class="nav-item mx-2">
+            <a class="nav-link" href="#gear"><b><b>Gear</b></b></a>
+          </li>
         </ul>
         <a class="btn navbar-btn mx-2 btn-primary shadowed" href="#download"><b><b>Download</b></b></a>
       </div>
@@ -66,7 +68,7 @@
         </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-inline-flex justify-content-center align-items-center">
-            <div class="animation d-inline-flex justify-content-center align-items-center" data-animation-step="3">
+            <div class="animation d-inline-flex justify-content-center align-items-center" data-animation-step="2">
               <div class="device mt-5">
                 <div class="screen-stand"></div>
                 <div class="display">
@@ -122,8 +124,8 @@
         </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 text-light">We are a volunteer based non-profit organization that works to maintain various development projects. We provide the training and mentorship to help our team members dreams become reality.&nbsp;<br>Our main focus is to provide a quality OS that can run on all your devices, preserving customizations and options by syncing across all platforms. With all the bells and whistles, you can imagine.&nbsp;We believe you'll soon learn why we call it Bliss.</p>
-          <a class="btn btn-outline-primary" href="#features">Learn more</a>
+          <p class="my-4 text-light">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>
     </div>
@@ -153,24 +155,24 @@
           <h3 class="display-3">Bliss Features</h3>
         </div>
       </div>
-      <div class="row">
+      <div class="row" style="">
         <div class="align-self-center text-md-right text-center col-lg-4 col-md-6">
           <h4 class="text-primary"><b>Focus on design</b></h4>
           <p class="mb-5 text-white">We include many options for customization and theming throughout the OS</p>
           <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>Connect</b></h4>
-          <p class="mb-5 text-white">In-app chat panel 24/7 active. <br>The support you need, right there.</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>
         </div>
         <div class="my-3 d-none d-lg-block animate-in-down col-md-4" style="">
-          <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" style=""> </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>
-          <h4 class="text-primary"><b>Share the love</b></h4>
-          <p class="mb-5 text-white">Help us spreading the word. <br>Tell your friends with just one-click</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>
         </div>
       </div>
     </div>
@@ -180,21 +182,22 @@
   <div class="section">
     <div class="container d-flex justify-content-center align-items-center flex-grow-1 mx-auto w-75 py-4">
       <div class="row">
-        <div class="col-md-6 text-center mx-auto px-5 pt-4">
-          <h3 class="my-3 highlight_secondary team-header text-white"> </h3><br>
-          <h2 class="my-3 highlight_secondary team-header text-white">We volunteer our time.</h2>
-          <p class="mb-3">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. </p> <a href="https://www.paypal.me/TeamBliss" class="btn btn-primary">Buy Us a Beer</a>
+        <div class="col-md-6 text-center 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">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.me/TeamBliss" class="btn btn-primary">Buy Us a Coffee</a>
+          </div>
         </div>
-        <div class="col-md-6 py-5"><img class="img-fluid d-block d-flex align-items-center justify-content-center flex-grow-1 mx-auto animate-in-right" src="images/beer.svg" width="300"></div>
+        <div class="col-md-6 py-5"><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>
   <!-- Call to action -->
   <div class="py-5  bg-primary" id="download">
-    <div class="container">
+    <div class="container-fluid">
       <div class="row">
         <div class="text-center col-md-12">
-          <h3 class="display-3">Download Options</h3>
+          <h3 class="display-3 d-flex justify-content-center align-items-center w-100">Download Options</h3>
           <div class="row">
             <div class="col-md-8">
               <h1 class="text-center">Free</h1>
@@ -213,7 +216,7 @@
             <div class="card-body p-4">
               <div class="row">
                 <div class="col-8">
-                  <h3 class="mb-0"><b>Bliss ROM</b></h3>
+                  <h3 class="mb-0"><b>Bliss ROM</b></h3><img class="img-fluid d-block flex-grow-1 justify-content-center align-items-center d-flex float-left" src="https://img.shields.io/sourceforge/dm/blissroms.svg?style=for-the-badge&amp;logo=appveyor&amp;colorB=blue" width="85%">
                 </div>
                 <div class="col-4 text-right">
                   <h2 class="mb-0"> <b>$0</b> </h2>
@@ -224,8 +227,25 @@
               <ul class="pl-3">
                 <li>Multiple Devices Supported</li>
                 <li>Tons of Customization Options</li>
+                <li>GSI/Treble builds support multiple devices</li>
                 <li>Device Support not Guaranteed</li>
-              </ul> <a class="btn btn-primary mt-3 text-white" data-target="#popup-modal1" data-toggle="modal" style="">Download Now</a>
+              </ul> <a class="btn btn-primary mt-3 text-white" href="" target="_blank" data-target="#popup-modal6" data-toggle="modal">Learn More&nbsp;</a>
+              <a class="btn btn-primary mt-3 text-white" data-target="#popup-modal1" data-toggle="modal" style="">Download Now</a>
+              <div id="popup-modal6" class="modal fade flex-grow-1 align-items-center justify-content-center">
+                <div class="modal-dialog">
+                  <div class="modal-content">
+                    <div class="modal-body px-3 bg-light">
+                      <h1 class="text-center"> What is Bliss ROM? </h1>
+                      <p class="text-center lead"><b>This is Bliss for your typical Android devices.<br>GSI/Treble options are also available</b></p>
+                      <p class="text-center"><b>These builds are maintained by our device maintainers, and updated on a regular basis. So please make sure you check for the latest updates.&nbsp;</b></p>
+                      <p class="text-center"><b>Our most popular devices are </b>santoni, berkeley, shamu, taimen, cheeseburger, helium, &amp; hydrogen.<br>Other "Unofficial" devices can be found online, but Team Bliss does not offer support for these builds.<br>For support, please check XDA Developers Forum for your device and see if there's a Bliss build for you.</p>
+                    </div>
+                    <div class="modal-footer text-center bg-light">
+                      <a class="btn btn-primary mt-0" href="" data-target="#popup-modal1" data-toggle="modal">Go To Downloads</a>
+                    </div>
+                  </div>
+                </div>
+              </div>
               <div id="popup-modal1" class="modal fade flex-grow-1 align-items-center justify-content-center">
                 <div class="modal-dialog">
                   <div class="modal-content">
@@ -251,8 +271,8 @@
                       </div>
                     </div>
                     <div class="modal-footer text-center bg-dark">
-                      <a href="http://downloads.blissroms.com" class="btn btn-link" data-dismiss="modal"><span class="glyphicon glyphicon-chevron-right"></span>
-                      </a><a class="btn btn-primary mt-0" href="https://downloads.blissroms.com/BlissRoms/Pie/">Go To Downloads</a>
+                      <a href="https://sourceforge.net/projects/blissroms/files/" class="btn btn-link" data-dismiss="modal"><span class="glyphicon glyphicon-chevron-right"></span>
+                      </a><a class="btn btn-primary mt-0" href="https://sourceforge.net/projects/blissroms/files/">Go To Downloads</a>
                     </div>
                   </div>
                 </div>
@@ -265,16 +285,16 @@
             <div class="card-body p-4">
               <div class="row">
                 <div class="col-8">
-                  <h3 class="mb-0"><b>Bliss OS</b></h3>
+                  <h3 class="mb-0"><b>Bliss OS (x86)</b></h3><img class="img-fluid d-block flex-grow-1 justify-content-center align-items-center d-flex float-left" src="https://img.shields.io/sourceforge/dm/blissos-x86.svg?style=for-the-badge&amp;logo=appveyor&amp;colorB=blue" width="85%">
                 </div>
                 <div class="col-4 text-right">
                   <h2 class="mb-0"> <b>$0</b></h2>
                 </div>
               </div>
               <p class="text-right">Or Donation</p>
-              <p class="my-3">This is the free version of Bliss OS for PCs..&nbsp;These builds are compatible with PCs, MacBooks and Chromebooks equipped with x86/x86_64 compatible CPUs. Supports both BIOS/CSM and UEFI boot.</p>
+              <p class="my-3">This is Bliss, running as a native or emulated OS for PCs..&nbsp;These builds are compatible with PCs, MacBooks and Chromebooks equipped with x86/x86_64 compatible CPUs. Supports both BIOS/CSM and UEFI boot.</p>
               <ul class="pl-3">
-                <li>Limited Online Support</li>
+                <li>Limited Online Support (<a href="https://forum.xda-developers.com/bliss-roms/bliss-roms-development/bliss-os-pie-beta-preview-t3855917">visit XDA thread</a>)</li>
                 <li>Limited Device Compatibility</li>
                 <li>Generic Kernel - One Size Fits All</li>
               </ul>
@@ -325,7 +345,7 @@
                       </div>
                     </div>
                     <div class="modal-footer text-center bg-dark">
-                      <a href="http://downloads.blissroms.com" class="btn btn-link" data-dismiss="modal"><span class="glyphicon glyphicon-chevron-right"></span>
+                      <a href="https://sourceforge.net/projects/blissos-x86/files/" class="btn btn-link" data-dismiss="modal"><span class="glyphicon glyphicon-chevron-right"></span>
                       </a>
                       <div class="btn-group pi-draggable">
                         <button class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-expanded="false"> Go To Downloads</button>
@@ -334,7 +354,7 @@
                           <div class="dropdown-divider"></div>
                           <a class="dropdown-item" href="https://sourceforge.net/projects/blissos-x86/files/Official/bleeding_edge/archived">Oreo (10.x)</a>
                           <div class="dropdown-divider"></div>
-                          <a class="dropdown-item" href="https://downloads.blissroms.com/BlissOS/bleeding_edge/">Pie (11.x)</a>
+                          <a class="dropdown-item" href="https://sourceforge.net/projects/blissos-x86/files/Official/bleeding_edge/">Pie (11.x)</a>
                         </div>
                       </div>
                     </div>
@@ -351,7 +371,7 @@
             <div class="card-body p-4 bg-secondary rounded border">
               <div class="row">
                 <div class="col-7">
-                  <h3 class="mb-0"><b>Bliss OS Pro/EDU</b></h3>
+                  <h3 class="mb-0"><b>ROM &amp; OS (x86) Development</b></h3>
                   <p class="text-left">&nbsp;</p>
                 </div>
                 <div class="text-right mx-0 mr-0 ml-0 col-5">
@@ -360,21 +380,22 @@
                   <p class="text-right">per device</p>
                 </div>
               </div>
-              <p class="" style="">This is the paid version of Bliss OS for businesses and educational institutions, specifically developed on a per device basis for your needs</p>
+              <p class="" style="">This is for businesses and educational institutions, that wish to use Bliss ROM or OS on specific Android or x86 hardware. This service includes hourly fees for development as well as per device pricing options*.&nbsp;</p>
               <ul class="pl-3">
                 <li>Tech Support Contract Included</li>
-                <li>Extra Kernel &amp; device options *</li>
+                <li>Extra Kernel &amp; device options **</li>
                 <li>Full Source Code Available</li>
-                <li contenteditable="true">Extra Tools and Options Available</li>
+                <li>Extra Tools and Options Available</li>
               </ul>
-              <p class="my-3" style=""><b>*</b> Custom kernel and device development is available at hourly rates</p>
+              <p class="d-inline-flex text-left justify-content-start align-items-start" style="	transform:  scale(.8);">* Per device rates starting with orders targeting 100,000 devices or more<br><br>** Custom kernel and device development is available at hourly rates</p>
               <a class="btn btn-primary mt-3 text-white" href="" data-target="#popup-modal3" data-toggle="modal">Contact Us</a>
               <div id="popup-modal3" class="modal fade justify-content-center align-items-center flex-grow-1">
                 <div class="modal-dialog">
                   <div class="modal-content">
                     <div class="modal-body px-3 bg-dark">
-                      <h1 class="text-center"> Thanks for your interest in Bliss OS Pro/EDU </h1>
-                      <p class="text-center">Please Fill out the form below and we will be in touch. </p>
+                      <h1 class="text-center" style=""> Thanks for your interest in Bliss ROM/OS Development</h1>
+                      <p class="text-center">Please Fill out the form below, leaving as much detail as possible about your target device* and or opportunity and we will be in touch shortly.<br></p>
+                      <p class="text-center" style="font-size:.75em;">* Inquiries requesting us to work on a single device, already on the consumer market will be ignored. This opportunity is for manufacturers and OEM's only. </p>
                       <form action="mailto:blissfamilyroms@gmail.com" method="GET" data-form-title="CONTACT US">
                         <div class="form-group"> <input type="email" class="form-control" id="form33" placeholder="Your Email" name="email"> </div>
                         <div class="form-group"> <input type="text" class="form-control" id="form34" placeholder="Subject" name="name"> </div>
@@ -646,6 +667,40 @@
       </div>
     </div>
   </div>
+  <div class="py-5 bg-primary" id="gear">
+    <div class="container">
+      <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>
+        </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><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><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><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">
+        <div class="col-md-12">
+          <div class="card">
+            <div class="card-body">
+              <h4 class="card-title"><b>Want More?</b></h4>
+              <p class="card-text">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>
+      </div>
+    </div>
+  </div>
   <div class="py-3 bg-dark">
     <div class="container">
       <div class="row">
@@ -682,18 +737,18 @@
         <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 justify-content-between my-2"> <a href="https://www.facebook.com/BlissFamilyOfROMs/">
-                <i class="d-block fa fa-facebook-official text-muted fa-lg mr-2"></i>
+            <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 fa-lg mx-2"></i>
+                <i class="d-block fa fa-instagram text-muted mx-2 fa-2x"></i>
               </a> <a href="https://plus.google.com/communities/118265887490106132524">
-                <i class="d-block fa fa-google-plus-official text-muted fa-lg mx-2"></i>
+                <i class="d-block fa fa-google-plus-official text-muted mx-2 fa-2x"></i>
               </a> <a href="https://github.com/BlissRoms">
-                <i class="d-block fa fa-github text-muted text-muted fa-lg mx-2 "></i>
+                <i class="d-block fa fa-github text-muted text-muted mx-2 fa-2x"></i>
               </a> <a href="https://www.reddit.com/r/BlissRoms">
-                <i class="d-block fa fa-reddit text-muted fa-lg mx-2"></i>
+                <i class="d-block fa fa-reddit text-muted mx-2 fa-2x"></i>
               </a> <a href="https://twitter.com/Bliss_Roms">
-                <i class="d-block fa fa-twitter text-muted fa-lg ml-2"></i>
+                <i class="d-block fa fa-twitter text-muted ml-2 fa-2x"></i>
               </a> </div>
           </div>
         </div>
@@ -713,7 +768,6 @@
   <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>
-
 </body>
 
 </html>
\ No newline at end of file
diff --git a/js/adv.js b/js/adv.js
new file mode 100644
index 0000000..c9d8243
--- /dev/null
+++ b/js/adv.js
@@ -0,0 +1,548 @@
+console.clear();
+
+/**
+ * Choose Your Own Adventure-style data structure.
+ *
+ * Works on the principle of 'entries'/'chapters', like the oldschool 'turn to 100'
+ * style Fighting Fantasy gamebooks - this is *not* a proper text adventure engine 
+ * with full location, inventory and state management. It could probably be adapted
+ * to that quite easily, though.
+ *
+ * Definition format:
+ *
+ * Content:
+ * - id: unique string ID for use in 'goto'/'next'.
+ * - text: body text for this entry.
+ * - extra: array of additional paragraphs:
+ *      - text: text for this paragraph
+ *      - requires: string/array of item(s) required for this paragraph
+ *                  to be included.  Use '!itemname' to invert logic.
+ *
+ * Inventory / state:
+ * - gives: string/array of item(s) gained when entry is visited
+ * - takes: string/array of item(s) lost when entry is visited
+ * - gameover: if 'win' or 'lose', changes game state when entry is visited
+ *
+ * Navigation (ONE of the following):
+ * - next: id of next entry (will convert to a single 'Continue...' option)
+ * - options: array of options for this entry:
+ *      - text: text used for option
+ *      - goto: id of entry this option leads to
+ *      - requires: string/array of item(s) required for this option
+ *                  to be available.  Use '!itemname' to invert logic.
+ * 
+ **/
+
+var ENTRIES = [{
+        // Recreation room
+        id: 'e_recroom',
+        text: 'You are in a small-ish room with a computer in front of you ' +
+            'The computer screen shows a terminal, and on the terminal ' +
+            'error showing that you need to repo init before running repo ' +
+            'sync. What do you do',
+        extra: [{
+            text: 'You have the BlissROMs thread for a different device ' +
+				'open on a second screen.',
+        }],
+        options: [{
+            text: 'Examine the webpage for the GitHub link',
+			goto: 'e_github'
+        }, {
+            text: 'Search Google for your answer',
+			goto: 'e_google'
+        }],
+        start: true
+    }, {
+        // Look at the plushie
+        id: 'e_github',
+        text: 'Upon closer inspection, the webpage has a section for Sources, Links, and ' +
+            'Social Media. You scan through them quickly to see if anything could be useful ' +
+            'What section do you decide on',
+        options: [{
+            text: 'Copy the link for the BlissROMs github',
+			goto: 'e_got_github_link'
+        }, {
+            text: 'Open a new tab and go to Google Search instead',
+			goto: 'e_google'
+        }]
+    }, {
+        // Get the mask off the plushie
+        id: 'e_got_github_link',
+        text: 'You grab the link to the BlissROMs GitHub page, and paste it into a new tab. It loads and shows  ' +
+            'a list of repo links is shown, and you are a little overwhelmed by the amount of choices available. ' +
+            'You copy the link to the manifest repo, but are unsure. So you decide to head to Google instead ',
+        next: 'e_google'
+    }, {
+        // Main atrium
+        id: 'e_google',
+        text: 'You sit there, staring at the Google Search page. ' +
+            'As you type in BlissROMs repo init, the page results spit out you notice a few things in the  ' +
+            'list that look familiar. The top result is for the manifest link, while the second result is for ' +
+            'a how-to unlock and root any device. The third link shown is for a YouTube video on building ' +
+			'Android ROMs, and the fourth link down leads to the BlissROMs webpage ',
+        options: [{
+			text: 'Follow the think to the BlissROMs Manifest.',
+			goto: 'e_link_manifest'
+		}, {
+			text: 'Follow the link to unlock and root your device',
+			goto: 'e_link_droid'
+		}, {
+			text: 'Head to YouTube for the video on building Android ROMs',
+			goto: 'e_link_youtube'
+		}, {
+			text: 'Head over to the BlissROMs webpage',
+			goto: 'e_link_blissroms'
+		}],
+    }, {
+        // Manifest link
+        id: 'e_link_manifest',
+        text: 'You head to the manifest page and it shows a few files on the top, followed by a descriptive ' +
+            'readme detailing all the steps needed to install dependencies, repo init, repo sync and even  ' +
+            'steps to build the ROM, GSI, EFI & x86. You remember that you were looking for the init link ' +
+			'so you copy that text snippet. ',
+        next: 'e_back_to_terminal'
+    }, {
+        // Killed by malware
+        id: 'e_link_droid',
+        text: 'You follow the link to unlock and root your device. Upon loading the page, a pop-up dialog shows ' +
+            'and mentioned that you need to click OK in order to root your device. You click it, and the screen ' +
+            'displays a ton of terminal windows opening and closing. You smell smoke from the PC, and before you ' +
+            'can reach the power button, the machine shuts off. smoke is still pouring from the case. ' +
+			' You have failed, go back to your iPhone looser',
+        gameover: 'lose'
+	}, {		
+        // Killed by youtube
+        id: 'e_link_youtube',
+        text: 'You follow the link to watch the YouTube video on building Android, and start to soak up all the ' +
+            'info provided. At the one hour mark, you remember that you left the meatloaf in the oven, and you ' +
+            'are starting to smell a combination of burnt BBQ sauce and beef. You rush to the kitchen to find ' +
+            'half the kitchen on fire already. You reach for a fire extinguisher and try to use it. There was no ' +
+			'pressure in the extinguisher. You then remember seeing a YouTube video on extinguishing a fire with ' +
+			'water, so you quickly throw a bowl of water on the flames. ' +
+			'The flames quickly grow because you threw water on a grease fire and you die. Dont believe everything ' +
+			'you see on youtube ',
+        gameover: 'lose'
+    }, {
+        // BlissROMs link
+        id: 'e_link_blissroms',
+        text: 'You load the BlissROMs page, and scroll through it. At the bottom, you notice the BlissROMs github ' +
+            'link from earlier. You follow it and are shown a list of repos. ',
+        extra: [{
+				text: 'You study your options and notice there are a few repos pinned to the top for manifest, ' +
+					'frameworks/base, vendor/bliss, etc. ',
+			}],
+        options: [{
+				text: 'Check out the manifest repo',
+				goto: 'e_link_manifest'
+			}, {
+				text: 'Check out frameworks/base repo.',
+				goto: 'e_link_fwb'
+			}, {
+				text: 'Check out the vendor/bliss repo',
+				goto: 'e_vendor_bliss'
+			}]
+    }, {
+        // Link fwb
+        id: 'e_link_fwb',
+        text: 'You click the link to frameworks/base, and are presented with a page of source files. and code. None of ' +
+            'this looks like something you are looking for. So you decide to go back to the main repo page' ,
+        next: 'e_link_github_again'
+    }, {
+        // Link vendor/bliss
+        id: 'e_vendor_bliss',
+        text: 'You click the link to vendor/bliss, and are presented with a page of source files. and code. None of ' +
+            'this looks like something you are looking for. So you decide to go back to the main repo page' ,
+        next: 'e_link_github_again'
+    }, {
+        // GitHub again
+        id: 'e_link_github_again',
+        text: 'You head back to the BlissROMs github link from earlier. You see the same list of repos. ',
+        extra: [{
+				text: 'You study your options and notice there are a few repos pinned to the top for manifest, ' +
+					'frameworks/base, vendor/bliss, etc. ',
+			}],
+        options: [{
+				text: 'Check out the manifest repo',
+				goto: 'e_link_manifest'
+			}, {
+				text: 'Check out frameworks/base repo.',
+				goto: 'e_link_fwb'
+			}, {
+				text: 'Check out the vendor/bliss repo',
+				goto: 'e_vendor_bliss'
+			}]
+    }, {
+		// Back to terminal
+        id: 'e_back_to_terminal',
+        text: 'In the terminal window, you take the text snippet you grabbed and paste it into the terminal ' +
+            'window, then hit Return. It spits out a bunch of text and presents you with a message that reads ' +
+			'Repo has been successfully initiated. ',
+        options: [{
+                text: 'View the Github manifest page for the next step',
+                goto: 'e_manifest_next'
+            }, {
+                text: 'Enter repo sync into the terminal',
+                goto: 'e_repo_sync'
+            }, {
+                text: 'Search Google for an answer',
+                goto: 'e_google_2'
+            }, {
+                text: 'Search Youtube for an answer',
+                goto: 'e_link_youtube'
+            }]
+    }, {
+		// Google again
+        id: 'e_google_2',
+        text: 'You head back to google to find out what you do next, so you search for blissroms repo init and ' +
+			'are presented a few options. The top two links lead to the BlissROMs github page, so you follow that ',
+        next: 'e_link_github_again'
+    },{
+      // manifest
+        id: 'e_manifest_next',
+        text: 'You return to the manifest repo, and scroll down to the list of instructions. Once there, you notice ' +
+                ' that the next item after the repo init part are about repo sync.  ' +
+                'What do you decide to do',
+        options: [{
+                text: 'Copy the command for repo sync',
+                goto: 'e_repo_sync'
+            }, {
+                text: 'Give up and go watch some TV',
+                goto: 'e_go_watch_tv'
+            }, {
+                text: 'Leave and go outside.',
+                goto: 'e_outside'
+            }]
+    }, {
+      // repo sync
+        id: 'e_repo_sync',
+        text: 'You head back to the terminal and enter the repo sync command into it, and press return ' +
+            'The screen lights up with hundreds of lines of text scrolling past the screen endlessly.  ' +
+            'After about 30 min, the repo sync finishes and you are presented with a blinking cursor. ' +
+			'What do you do now',
+        options: [{
+                text: 'Head back to the Bliss manifest page to see whats next',
+                goto: 'e_go_build'
+            }, {
+                text: 'Give up and go watch some TV',
+                goto: 'e_go_watch_tv'
+            }, {
+                text: 'Leave and go outside',
+                goto: 'e_outside'
+            }]
+    },{
+        // build
+        id: 'e_go_build',
+        text: 'You head back to the Bliss manifest repo and follow the instructions a little further until ' +
+            'you find the section for building. ' +
+            'After finding the section, you see a code snippet to initiate the lunch command and build.' +
+			'What do you do now',
+        options: [{
+                text: 'Leave and go outside',
+                goto: 'e_outside'
+            }, {
+                text: 'Copy the code to the terminal window and press enter',
+                goto: 'e_go_compile'
+            }, {
+                text: 'Give up and go watch some TV',
+                goto: 'e_go_watch_tv'
+            }]
+    }, {
+      // Die outside
+        id: 'e_outside',
+        text: 'You decide to give up for now and go outside. Once there, you are confronted with a huge thunderstorm ' +
+            ' and lightning clashes and catches your house on fire.' ,
+        gameover: 'lose'
+    }, {
+        // Die watching TV
+        id: 'e_go_watch_tv',
+        text: 'You decide to give up for now and go watch some TV. Once the TV is turned on, an alien mothership enters ' +
+            'earths atmosphere and takes over all TV broadcasts. They state that the people of earth have 30 seconds to ' +
+            'say their prayers before they git the reset button on human life. You waste the last 30 seconds of your life ' +
+			'by flipping through Facebook on your phone. ',
+        gameover: 'lose'
+    },
+    {
+      // WINNING
+        id: 'e_go_compile',
+        text: 'You copy the lunch command into the terminal, then press return, and select the number representing your ' +
+		'device. The build launches and you safely go watch TV for a bit while things are compiling ',
+        gameover: 'win',
+    },
+               
+];
+
+/**
+ * Parser module for the data format.
+ * Reads the data object format and creates an internal copy with required 
+ * transformations and parsing. Exposes methods to start/reset the game,
+ * advance the game via choices/actions, and read the currently active entry.
+ *
+ * The module is just data-driven, and returns objects from its methods; it
+ * does no handling of game display or user input directly.  It needs a frontend
+ * written for it in order for a player to interact with it.
+ **/
+var CYOA = (function() {
+
+    var ENTRY_DATA,
+        currentEntryId, currentEntryData,
+        inventory;
+
+    function _init(entryData) {
+        // clear state
+        ENTRY_DATA = {};
+        currentEntryId = null;
+        currentEntryData = {};
+        inventory = [];
+
+        var startEntryId = null;
+
+        // Parse entry data into internal object
+        entryData.forEach(function(entry) {
+            ENTRY_DATA[entry.id] = Object.create(entry);
+
+            // Track the starting entry and warn of duplicates
+            if (entry.start === true) {
+                if (startEntryId !== null) {
+                    console.error('More than one starting state defined:', startEntryId, entry.id);
+                } else {
+                    startEntryId = entry.id;
+                }
+            }
+
+            // Process extra paragraphs if present
+            if (entry.extra) {
+                entry.extra.forEach(function(ext) {
+                    // convert string options to single-item arrays for easier parsing
+                    if (ext.requires && (typeof ext.requires === 'string')) {
+                        ext.requires = [ext.requires];
+                    }
+                });
+            }
+
+            // 'Next' overrides all other options
+            if (entry.next) {
+                entry.options = [{
+                    text: 'Continue...',
+                    goto: entry.next
+                }];
+            }
+            // Process and validate options
+            if (entry.options) {
+                entry.options.forEach(function(opt) {
+                    // options must have a 'goto'
+                    if (!opt.goto) console.error('Entry', entry.id, ' has option without a goto: ', opt.text);
+                    // convert string options to single-item arrays for easier parsing
+                    if (opt.requires && (typeof opt.requires === 'string')) {
+                        opt.requires = [opt.requires];
+                    }
+                });
+            }
+        });
+
+        // Set initial state from starting entry
+        if (startEntryId === null) console.error('No start entry found');
+        _setEntry(startEntryId);
+    }
+
+    // Inventory methods (accept string or array)
+
+    function _addToInventory(items) {
+        if (typeof items === 'string') items = [items];
+        inventory = inventory.concat(items);
+    }
+
+    function _takeFromInventory(items) {
+        if (typeof items === 'string') items = [items];
+        var newInv = [];
+        inventory.forEach(function(item) {
+            if (items.indexOf(item) === -1) newInv.push(item);
+        });
+        inventory = newInv;
+    }
+
+    function _checkInventory(item) {
+        return (inventory.indexOf(item) > -1);
+    }
+
+    // Utility method to check a 'requires'-format array against the current inventory
+    function _hasRequirements(opt) {
+        var isAvailable = true;
+        if (opt.requires) {
+            opt.requires.forEach(function(req) {
+                if (req.charAt(0) === '!' && _checkInventory(req.substr(1))) isAvailable = false;
+                if (req.charAt(0) !== '!' && !_checkInventory(req)) isAvailable = false;
+            });
+        }
+        return isAvailable;
+    }
+
+    // Updates the current entry data to the given entry ID.
+    // Composes the current entry data based on conditionals set in the entry data,
+    // including required inventory to display options, etc.
+    // Also makes changes to inventory and state based on the definition data.
+    function _setEntry(id) {
+        if (!id in ENTRY_DATA) console.error('Unable to change entry: invalid entry id', id);
+        currentEntryId = id;
+
+        var data = ENTRY_DATA[id];
+        currentEntryData = {
+            id: data.id,
+            text: data.text,
+            extra: []
+        };
+
+        // Add/remove inventory items in this entry
+        if (data.gives) _addToInventory(data.gives);
+        if (data.takes) _takeFromInventory(data.takes);
+
+        // Update text with extras
+        if (data.extra) {
+            data.extra.forEach(function(ext) {
+                if (_hasRequirements(ext)) currentEntryData.extra.push(ext.text);
+            });
+        }
+
+        // State modifiers
+        // TODO: make this more definitive and mutate options accordingly
+        if (data.gameover) currentEntryData.gameover = data.gameover;
+
+        // Define available options based on inventory requirements
+        if (data.options) {
+            currentEntryData.options = [];
+            data.options.forEach(function(opt, idx) {
+                if (_hasRequirements(opt)) {
+                    currentEntryData.options.push({
+                        text: opt.text,
+                        goto: opt.goto
+                    });
+                }
+            });
+        }
+        return currentEntryData;
+    }
+
+    function startGame(data) {
+        _init(data);
+    }
+
+    function getCurrentEntry() {
+        if (currentEntryData === {}) console.error('No current entry; has the game started?');
+        return currentEntryData;
+    }
+
+    function getInventory() {
+        return inventory;
+    }
+
+    // Changes the active entry according to the numeric ID of the option passed in,
+    // if it is present in the current entry.
+    function doOption(idx) {
+        if (!currentEntryData.options) console.error('Can not complete option', idx);
+        var opt = currentEntryData.options[idx];
+        var newEntryId = opt.goto;
+        if (!newEntryId in ENTRY_DATA) console.error('Cannot do option: invalid goto id', newEntryId);
+        return _setEntry(newEntryId);
+    }
+
+    return {
+        startGame: startGame,
+        getCurrentEntry: getCurrentEntry,
+        getInventory: getInventory,
+        doOption: doOption
+    };
+})();
+
+/**
+ * Some simple jQuery DOM logic for demo purposes.
+ * This could easily be expanded for better presentation,
+ * per-location graphics, all kinds of stuff.
+ **/
+var Game = (function() {
+
+    var DATA;
+
+    // Container element to render into
+    var $el = $('#output_a');
+
+    // Text for game over scenarios
+    var endMsgs = {
+        win: 'You won! Play again...',
+        lose: 'You failed.  Restart...'
+    };
+
+    // Reads the current entry data and puts DOM nodes
+    // in the container to display the text and options
+    function render(isStart) {
+        var d = CYOA.getCurrentEntry();
+
+        // Clear the container and write the body text
+        $el.html('');
+        if (isStart) $el.append('<p class="title">*** Build BlissROM ***</p>');
+        $el.append('<p>' + d.text + '</p>');
+
+        d.extra.forEach(function(ext) {
+            $el.append('<p>' + ext + '</p>');
+        });
+
+        // Write out a list of option or restart links in a list
+        // (click handlers bound in init() will handle these)
+        var $opts = $('<ul/>');
+        if (d.gameover) {
+            var $action = $('<li><a class="opt gameover ' + d.gameover + '" href="#">' +
+                endMsgs[d.gameover] + '</a></li>');
+            $opts.append($action);
+        }
+        if (d.options) {
+            d.options.forEach(function(opt, idx) {
+                var $opt = $('<li><a class="opt action" href="#" data-opt="' + idx + '">' +
+                    opt.text + '</a></li>');
+                $opts.append($opt);
+            });
+        }
+        $el.append($opts);
+
+        // Show current inventory
+        if (!d.gameover) {
+            var inv = CYOA.getInventory();
+            if (inv.length) {
+                $el.append('<p class="inv">You are carrying: ' + inv.join(', ') + '</p>');
+            }
+        }
+    }
+
+    function init(entryData) {
+
+        DATA = entryData;
+
+        // Click handlers for option links.  Bound to the document
+        // as we destroy and rebuild the links per-entry.
+        $(document).on('click', '.action', function(e) {
+            e.preventDefault();
+            var opt = $(this).attr('data-opt');
+            console.log('do option', opt);
+            if (CYOA.doOption(opt)) render();
+        });
+
+        // As above but for win/lose links.  Restart the game when used
+        $(document).on('click', '.gameover', function(e) {
+            e.preventDefault();
+            _start();
+        });
+
+        _start();
+    }
+
+    function _start() {
+        // Init the game and render the first entry
+        CYOA.startGame(DATA);
+        render(true);
+    }
+
+    return {
+        init: init
+    }
+
+})();
+
+// Kick off 
+Game.init(ENTRIES);
\ No newline at end of file
diff --git a/js/counter.js b/js/counter.js
index f632111..38d2ae0 100644
--- a/js/counter.js
+++ b/js/counter.js
@@ -1,3 +1,28 @@
- $('.counter').counterUp({
+/* $('.counter').counterUp({
           
-        });
\ No newline at end of file
+        }); */
+$('.counter').each(function() {
+  var $this = $(this),
+      countTo = $this.attr('data-count');
+  
+  $({ countNum: $this.text()}).animate({
+    countNum: countTo
+  },
+
+  {
+
+    duration: 3000,
+    easing:'linear',
+    step: function() {
+      $this.text(Math.floor(this.countNum));
+    },
+    complete: function() {
+      $this.text(this.countNum);
+      //alert('finished');
+    }
+
+  });  
+  
+  
+
+});
\ No newline at end of file
diff --git a/json/converter.py b/json/converter.py
new file mode 100644
index 0000000..007e36d
--- /dev/null
+++ b/json/converter.py
@@ -0,0 +1,38 @@
+import json
+
+# Previous/new JSON file here
+old_file_name = "profile.json"
+new_file_name = "profile_new.json"
+
+# Read previous JSON
+with open(old_file_name, "r") as read_json:
+	old_data = json.load(read_json)
+	print("JSON loaded successfully. Beginning conversion...")
+
+# Initialize new dictionary
+user_list = []
+
+# Conversion
+index = 0
+for i in old_data["Name"]:
+	user = {}
+	user["name"] = i
+	user["email"] = old_data["Email"][index][7:]
+	user["avatar"] = old_data["Avatar"][index]
+	user["description"] = old_data["Description"][index]
+	user["github"] = old_data["Github"][index]
+	user["xda"] = old_data["XDA"][index]
+	user["facebook"] = old_data["Facebook"][index]
+	user["twitter"] = old_data["Twitter"][index]
+	user["instagram"] = old_data["Instagram"][index]
+	user["googleplus"] = old_data["GooglePlus"][index]
+	user_list.append(user)
+	index += 1
+	
+# Verify each user
+for i in user_list:
+	print(i)
+
+# Write new JSON
+with open(new_file_name, "w") as write_json:
+	json.dump(user_list, write_json, indent=4)
\ No newline at end of file
diff --git a/json/maintainers.json b/json/maintainers.json
new file mode 100644
index 0000000..d09998f
--- /dev/null
+++ b/json/maintainers.json
@@ -0,0 +1,26 @@
+{
+  "ID": [
+    ""
+  ],
+  "Avatar": [
+    ""
+  ],
+  "Name": [
+    ""
+  ],
+  "XDAUsername": [
+    ""
+  ],
+  "HangoutsUsername": [
+    ""
+  ],
+  "Email": [
+    ""
+  ],
+  "TelegramUsername": [
+    ""
+  ],
+  "Github_Username": [
+    ""
+  ]
+}
diff --git a/json/profiles.json b/json/profiles.json
new file mode 100644
index 0000000..6da0dca
--- /dev/null
+++ b/json/profiles.json
@@ -0,0 +1,156 @@
+{
+	"Name": [
+		"JackEagle",
+		"Jon West",
+		"Vaughn Newman",
+		"Antonio Luciano",
+		"BitO BSessiOn",
+		"Evan Galvin",
+		"Customworx",
+		"Henri Koivuneva",
+		"Calin Neamtu",
+		"Eric Park (ideaman924)",
+		"Aren Clegg",
+		"Deepak Sharma (TechExhibeo)"
+	],
+	"Avatar": [
+		"https://lh3.googleusercontent.com/w7i8JBSfddUp88DpBjjdT_PBODfKTiFV8TKHqyZnsU3m0-ppYXsuafqDtBxakFYW3mjIahKkFYBepZIGRQ=w1920-h1080-no",
+		"https://lh3.googleusercontent.com/hcV4Tp81H4TJskQhpKckcDBqwnETos_ZOxXsQbiZGOT5OxMC-3pOD5i22j1tPiaubWW74tmnwB0ixvGwELQ=w1920-h1080-no",
+		"https://lh3.googleusercontent.com/xhKBfn9HcjWayS9gQizUuh7JATtI4i-OvVv9Q6XPy5v5IyiI44lqRoxtMIyI3rlLc7OCyparEB9OqGT_Vg=w1920-h1080-no",
+		"https://lh3.googleusercontent.com/JOdHk7TYY-SLjAANLuK7t68Oz6w4fDFody-Uwj3rtH6oSZkljniUceYFQ52rbJXeBv4kDgoGhrtamLJlwZc=w1920-h1080-no",
+		"https://lh3.googleusercontent.com/LZrBsYT1S4qQI92uCuWx34QSGDcKpwY1G2h3LXT3tEvMPuSA8d6tiY7CsLYvBCznXk4sJhgr6UFk8pg1oA=w1920-h1080-no",
+		"https://lh3.googleusercontent.com/eRqBEkS4_cWFEkLce4sVRmyCkAwgsGZwIg1kE12_gjBaghKQ8Omc6V2UJT6q6LwZS8l-LkutUrskyeLFrd0=w1920-h1080-no",
+		"https://lh3.googleusercontent.com/iu4p6sC5xbTmz7gF5eYCucSHuI_1SBJnRkfNWcNQ6Cw7oCt5ryMHaU_DXpjWEgGX43SnPRs4dSjErXU=w1920-h1080-no",
+		"https://lh3.googleusercontent.com/t5rLm4Gex0mmG9VkXzfoXIl0t31pBJwPP798GYNOaLxvi9qjfka867yJl0P-8EXpO8_zeFe-Vq346C56Ww=w1920-h1080-no",
+		"https://lh3.googleusercontent.com/7nQL9EtHPRivUewvtg9sZR44G4wF4e5pLfFy7pX4CnbmxFyyJuaMBU7zcPi8BLlGF9t1cwTl9fdgUg=w1920-h1080-rw-no",
+		"https://lh3.googleusercontent.com/-zdwriNcIk1c/AAAAAAAAAAI/AAAAAAAAExQ/XBgOqSUsfsY/s750-p-rw-no/photo.jpg",
+		"https://lh3.googleusercontent.com/8VqQRqDi3dc35qeC_cipzDE5oW8llKvxq0F-uzwmR9jYJvsMtREEaANi874yCBpKvmWy86MwwXC22JDRRKU=w1920-h1080-no",
+		"https://drive.google.com/file/d/19TTPwNIbGTTFel2alF6Eb8xtmzQzKuS7/view?usp=drivesdk"
+	],
+	"Description": [
+		"CEO / Founder / Developer",
+		"CTO / Incorporator / Developer",
+		"Board Member / Admin / Developer",
+		"Board Member / Project Manager / App Developer",
+		"Board Member / Developer",
+		"Board Member / Product Technology Strategist",
+		"Board Member / Graphic Designer",
+		"Web Designer / Product Technology Strategist",
+		"Lead Development Manager / Web Developer",
+		"App Developer / Web Developer",
+		"Lead Developer",
+		"Server / Web Administrator"
+	],
+	"Facebook": [
+		"",
+		"",
+		"",
+		"",
+		"",
+		"https://www.facebook.com/evan.galvin",
+		"",
+		"https://facebook.com/hkoivuneva",
+		"https://facebook.com/nilac8991",
+		"https://facebook.com/ideaman924",
+		"",
+		""
+	],
+	"Instagram": [
+		"",
+		"https://www.instagram.com/electrikjesus",
+		"",
+		"",
+		"",
+		"",
+		"",
+		"https://instagram.com/hkoivuneva",
+		"",
+		"",
+		"",
+		"https://instagram.com/TechExhibeo"
+	],
+	"Twitter": [
+		"https://twitter.com/jackeaglexda",
+		"https://twitter.com/electrikjesus",
+		"",
+		"",
+		"",
+		"https://twitter.com/uknowetheg",
+		"",
+		"https://twitter.com/hkoivuneva",
+		"",
+		"https://twitter.com/ideaman924",
+		"",
+		"https://twitter.com/techexhibeo"
+	],
+	"Telegram": [
+		"",
+		"https://t.me/electrikjesus",
+		"https://t.me/rwaterspf1",
+		"",
+		"",
+		"https://t.me/UknowEtheG",
+		"",
+		"https://t.me/hkoivuneva",
+		"https://t.me/nilac8991",
+		"",
+		"",
+		"http://t.me/TechExhibeo"
+	],
+	"GooglePlus": [
+		"",
+		"https://plus.google.com/+JonWest",
+		"",
+		"",
+		"",
+		"https://plus.google.com/+EvanGalvin",
+		"",
+		"",
+		"https://plus.google.com/+CălinNeamţu",
+		"https://plus.google.com/+EricParkideaman924",
+		"",
+		""
+	],
+	"Email": [
+		"mailto:jackeagle@blissroms.com",
+		"mailto:electrikjesus@blissroms.com",
+		"mailto:rwaterspf1@blissroms.com",
+		"mailto:makaveli.the.dev@blissroms.com",
+		"mailto:bitobsession@blissroms.com",
+		"mailto:evan.galvin@blissroms.com",
+		"mailto:customworx@blissroms.com",
+		"mailto:henri.koivuneva@blissroms.com",
+		"mailto:nilac@blissroms.com",
+		"mailto:ideaman924@blissroms.com",
+		"mailto:aclegg2011@blissroms.com",
+		"mailto:techexhibeo@blissroms.com"
+	],
+	"XDA": [
+		"https://forum.xda-developers.com/member.php?u=5216756",
+		"https://forum.xda-developers.com/member.php?u=928479",
+		"https://forum.xda-developers.com/member.php?u=4957527",
+		"",
+		"",
+		"",
+		"",
+		"",
+		"https://forum.xda-developers.com/member.php?u=4968383",
+		"",
+		"",
+		"https://forum.xda-developers.com/member.php?u=4835726"
+	],
+	"Github": [
+		"https://github.com/Jackeagle",
+		"https://github.com/electrikjesus",
+		"https://github.com/rwaterspf1",
+		"",
+		"",
+		"",
+		"https://github.com/customworx",
+		"https://github.com/hkoivuneva",
+		"https://github.com/nilac8991",
+		"https://github.com/ideaman924",
+		"",
+		"https://github.com/TechExhibeo"
+	]
+}
diff --git a/neon.css b/neon.css
index 5ba6423..dd19c91 100644
--- a/neon.css
+++ b/neon.css
@@ -34,7 +34,7 @@
   --dark: #303030;
   --breakpoint-xs: 0;
   --breakpoint-sm: 576px;
-  --breakpoint-md: 768px;
+  --breakpoint-md: 868px;
   --breakpoint-lg: 992px;
   --breakpoint-xl: 1200px;
   --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
@@ -461,7 +461,7 @@
   @media (min-width: 576px) {
     .container {
       max-width: 540px; } }
-  @media (min-width: 768px) {
+  @media (min-width: 868px) {
     .container {
       max-width: 720px; } }
   @media (min-width: 992px) {
@@ -740,7 +740,7 @@
   .offset-sm-11 {
     margin-left: 91.66667%; } }
 
-@media (min-width: 768px) {
+@media (min-width: 868px) {
   .col-md {
     flex-basis: 0;
     flex-grow: 1;
@@ -1215,7 +1215,7 @@
     .table-responsive-sm > .table-bordered {
       border: 0; } }
 
-@media (max-width: 767.98px) {
+@media (max-width: 867.98px) {
   .table-responsive-md {
     display: block;
     width: 100%;
@@ -2770,7 +2770,8 @@
 
 .nav-link {
   display: block;
-  padding: 0.5rem 1rem; }
+  padding: 0.5rem 1rem;
+  white-space: nowrap; }
   .nav-link:hover, .nav-link:focus {
     text-decoration: none; }
   .nav-link.disabled {
@@ -2918,13 +2919,13 @@
     .navbar-expand-sm .navbar-toggler {
       display: none; } }
 
-@media (max-width: 767.98px) {
+@media (max-width: 867.98px) {
   .navbar-expand-md > .container,
   .navbar-expand-md > .container-fluid {
     padding-right: 0;
     padding-left: 0; } }
 
-@media (min-width: 768px) {
+@media (min-width: 868px) {
   .navbar-expand-md {
     flex-flow: row nowrap;
     justify-content: flex-start; }
@@ -4534,7 +4535,7 @@
   .d-sm-inline-flex {
     display: inline-flex !important; } }
 
-@media (min-width: 768px) {
+@media (min-width: 868px) {
   .d-md-none {
     display: none !important; }
   .d-md-inline {
@@ -4820,7 +4821,7 @@
   .align-self-sm-stretch {
     align-self: stretch !important; } }
 
-@media (min-width: 768px) {
+@media (min-width: 868px) {
   .flex-md-row {
     flex-direction: row !important; }
   .flex-md-column {
@@ -5047,7 +5048,7 @@
   .float-sm-none {
     float: none !important; } }
 
-@media (min-width: 768px) {
+@media (min-width: 868px) {
   .float-md-left {
     float: left !important; }
   .float-md-right {
@@ -5390,6 +5391,14 @@
 .py-5 {
   padding-top: 4.5rem !important; }
 
+.pt-6 {}
+  @media (min-width: 576px) {
+    .pt-6 {
+      max-width: 540px; } }
+  @media (min-width: 868px) {
+    .pt-6 {
+      max-width: 1140px; } } }
+
 .pr-5,
 .px-5 {
   padding-right: 4.5rem !important; }
@@ -5605,7 +5614,7 @@
   .mx-sm-auto {
     margin-left: auto !important; } }
 
-@media (min-width: 768px) {
+@media (min-width: 868px) {
   .m-md-0 {
     margin: 0 !important; }
   .mt-md-0,
@@ -6188,7 +6197,7 @@
   .text-sm-center {
     text-align: center !important; } }
 
-@media (min-width: 768px) {
+@media (min-width: 868px) {
   .text-md-left {
     text-align: left !important; }
   .text-md-right {
@@ -6576,3 +6585,13 @@
   .animate-in-right.out-of-viewport {
     opacity: 0;
     left: 5%; }
+
+.flex-center {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+
+.no-wrap {
+  white-space: nowrap;
+}
