diff --git a/bfor.html b/bfor.html
new file mode 100644
index 0000000..3b4b769
--- /dev/null
+++ b/bfor.html
@@ -0,0 +1,409 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+  <meta name="description" content="BlissRoms - new site">
+  <meta name="theme-color" content="#0080ff">
+  <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
+  <link rel="icon" sizes="192x192" href="images/bliss_icon_small.png">
+  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
+  <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">
+  <!-- <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> -->
+  <link rel='stylesheet' href='http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css'>
+  <link href="https://fonts.googleapis.com/css?family=Comfortaa:400,700,300" rel="stylesheet">
+  <link rel="stylesheet" type="text/css" href="css/style.css">
+  <link rel="stylesheet" href="css/styles_filter.css">
+  <link rel="stylesheet" href="css/animations.css">
+  <script src="js/modernizr.js"></script>
+  <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>
+  <title>Bliss</title>
+</head>
+
+<body>
+  <!-- Fixed navbar -->
+  <nav class="navbar navbar-default navbar-fixed-top">
+    <div class="container">
+      <div class="navbar-header">
+        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
+          <span class="sr-only">Toggle navigation</span>
+          <span class="icon-bar"></span>
+          <span class="icon-bar"></span>
+          <span class="icon-bar"></span>
+        </button>
+        <a class="navbar-brand" href="#" style="	background-image: url(images/BlissIcon_w.png);	background-position: top left;	background-size: 100%;	background-repeat: no-repeat;">   </a>
+      </div>
+      <div id="navbar" class="collapse navbar-collapse">
+        <ul class="nav navbar-nav navbar-right">
+          <li id="nav-about">
+            <a href="index.html">Back Home</a>
+          </li>
+          <li id="donate">
+            <a href="https://www.paypal.me/TeamBliss" target="_blank">Donate</a>
+          </li>
+        </ul>
+      </div>
+      <!--/.nav-collapse -->
+    </div>
+  </nav>
+  <div class="py-5">
+    <div class="container">
+      <div class="row">
+        <div class="col-md-12">
+          <p></p>
+        </div>
+      </div>
+    </div>
+  </div>
+  <!-- Begin page content -->
+  <div class="container-fluid">
+    <div class="row cover top" style="	background-image: linear-gradient(to bottom, rgba(22, 22, 22, 0.0), rgba(22, 22, 22, 1.0));	background-position: top left;	background-size: 100%;	background-repeat: repeat;">
+      <div class="col-xs-12" >
+        <div class="row" style="overflow-x:hidden;height: auto;overflow-y: visible; color: #fff;">
+          <div class="col-md-12" align="center">
+            <div class="row">
+              <h1>Bliss Family of ROMs</h1>
+              <p class="lead">We are a 501(c3) nonprofit that aims to build and maintain various OS and software projects for education and the community, by providing training, development opportunities, build servers, download servers, design and development software, design opportunities, professionals and mentors in all fields revolving around Android development, at no cost. </p>
+            </div>
+			<div class="row">
+				<h2 style="color: #0080ff;">What are we aiming to accomplish?</h2>
+				<p class="lead">Our goal is to mentor and teach those interested in Android development. We have a large global community that is available to coach or answer questions about development, design, animation, etc. almost any time. We offer a stress free working environment, as well as the tools when resources allow us to do so, to help guide someone on the Android development path. We also provide them the tools to learn how to monetize their skills along the way.</p>
+			</div>
+			<div class="row">
+				<h3 style="color: #0080ff;">Can you tell me more about these mentorships and opportunities?</h2>
+				<p class="">We take on applicants and work with them to learn more about Android Development. We have many mentors available to help in all areas, from ROM development, App development, Design & Layout, as well as kernel development.</p>
+				<p>Each potential applicant is selected based on their want to learn and their ability to work with others, so we do require a bit of a background, or at least a very convincing argument.</p>
+			</div>
+		  </div>
+          
+        </div>
+        <div class="row">
+          <div class="col-xs-12 center-block text-center" style="overflow-y: visible; color: rgb(255, 255, 255); transform: translateY(60px);">
+            <a href="#about"><span id="scrollIcon" class="front-glyph glyphicon glyphicon-menu-down" style="	color: #fff;	transform:  translateY(-100%) ;" aria-hidden="true"></span></a>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+  
+  
+  <div id="portfolio" class="row cover">
+      <div class="container">
+        <h1 class="text-center family-header" style="color: #fff;">Being Open</h1>
+		<p class="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 href="https://www.guidestar.org/profile/82-3580195" style="color: #222;">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>
+		<p class="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>
+    </div>
+  
+  
+  
+  <div id="contact" class="row cover bottom" style="	background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0));	background-position: top left;	background-size: 100%;	background-repeat: repeat;">
+    <h1 class="text-center family-header" style="color: #0080ff;">Expenses </h1>
+	<section class="counting">
+		<div class="layout">
+			<h2 class="text-center" style="color: #fff;">2017 Revenue (year one)</h2>
+		  <div class="grid-3">
+			<span class="count1 counter" style="color: #0080ff;">899.00</span>
+			<p>Contributions, Grants, Gifts</p>
+		  </div> <!-- /.col-sm-3 -->
+		  <div class="grid-3">
+			<span class="count2 counter" style="color: #0080ff;">0</span>
+			<p>Program Services</p>
+		  </div><!-- /.col-sm-3 -->
+		  <div class="grid-3">
+			<span class="counter " style="color: #0080ff;">0</span>
+			<p>Special Events</p>
+		  </div><!-- /.col-sm-3 -->
+		  <div class="grid-3">
+			<span class="counter count4" 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>
+		  <div class="grid-3">
+			<span class="count1 counter" style="color: #0080ff;">0</span>
+			<p>Program Services & Affiliates</p>
+		  </div> <!-- /.col-sm-3 -->
+		  <div class="grid-3">
+			<span class="count2 counter" style="color: #0080ff;">360.00</span>
+			<p>Administration</p>
+		  </div><!-- /.col-sm-3 -->
+		  <div class="grid-3">
+			<span class="counter " style="color: #0080ff;">0</span>
+			<p>Fundraising</p>
+		  </div><!-- /.col-sm-3 -->
+		  <div class="grid-3">
+			<span class="counter count4" style="color: #0080ff;">295.00</span>
+			<p>Other Expenses</p>
+		  </div><!-- /.col-sm-3 -->
+
+		</div>
+	</section>	
+    <!-- End #Contact-->
+    
+  </div>
+  
+  
+  <!-- break -->
+  
+  
+  
+  <!-- Close Team -->
+  <div class="row">
+    <div id="family-lt" class="col-xs-12 text-center " style="	background-image: linear-gradient(to bottom, rgba(22,22,22,0.3), rgba(22,22,22,0.8));	background-position: top left;	background-size: 100%;	background-repeat: repeat;">
+      <div class="row">
+	    <div class="col-xs-12 text-center about-tools">
+		  <div class="container family-header text-center">
+			<img class="team-image" style="max-width: 36rem;width:100%" src="images/bliss_for.png">
+		  </div>
+		  
+          <p class="text-center">We are open to the public, and accepting applications now for volunteer only positions (internships coming soon).
+		  We are accepting people in small managable groups while we grow, and we tend to lean towards the type of people that want to learn and grow with Bliss Family of ROMs. 
+		  Bliss provides the tools, knowledge and the mentorship needed to help bring your development dreams to reality, and all we ask in return is a minimum contribution towards Bliss ROM while you learn and grow in your strengths.
+		  <br/>
+		  If you're an individual and would like to apply to join our team, please use the button below
+		  </p>
+		  <a class="btn btn-rounded family-projects--btn" href="https://goo.gl/forms/PdiaAj1PojosmehK2" style="color:#fff;" >Join Our Team</a>
+		  <br/>
+		  <p class="text-center">Got a great project but having trouble getting things off the ground? Or maybe you are looking to gain a few more people to help you out on it. Whatever your situation is, you can submit your project below for a chance to include it as a Bliss Family project. 
+		  </p>
+		  <p class="text-center">If you are interested in applying for this unique opportunity, please fill out the form below, and we will be in touch with you soon (usually within a few days!)</p>
+		  <a class="btn btn-rounded family-projects--btn" href="https://goo.gl/kAb7ti" role="button" style="color:#fff;">Submit your project now</a>
+		  <a class="btn btn-rounded family-projects--btn" href="https://www.paypal.me/TeamBliss" target="_blank" role="button" style="color:#fff;">Donate to Bliss Family</a>
+		  
+		</div>
+			
+		<div class="center col-lg-4">
+		  <h2 class="text-center">&nbsp;<br></h2>
+		  <h2 class="text-center">&nbsp;<br></h2>
+		</div>
+      </div>
+    </div>
+  </div>
+  <div id="family" class="row">
+    <div class="container">
+      <div class="family-header text-center">
+        <h2 class="text-center">&nbsp;<br></h2>
+        <h2 class="text-center">Bliss Family Projects</h2>
+      </div>
+      <div class="center">
+        <h4 class="text-center highlight_secondary">The Bliss Family projects we currently support can be found below:<br><br></h4>
+        <div class="col-lg-4">
+          <div class="family">
+            <div class="family-image text-center">
+              <img class="img-circle img-responsive" src="images/invictrix.jpg">
+              <div class="family-links ">
+                <div class="family-links-list">
+                  <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>
+                </div>
+                <!-- /.family-links-list -->
+              </div>
+              <!-- /.family-links -->
+            </div>
+            <!-- /.family-image -->
+            <div class="family-content text-center">
+              <div class="family-name">Invictrīx ROM</div>
+              <div class="family-role">
+                <h4>AOSP/CAF</h4>
+              </div>
+              <h4 class="family-description"> Invictrīx ROM emphasizes performance, offering heavy optimizations along with a unique dark themed style.</h4>
+            </div>
+            <!-- /.family-content -->
+          </div>
+          <!-- /.family -->
+        </div>
+        <div class="col-lg-4">
+          <div class="family">
+            <div class="family-image text-center">
+              <img class="img-circle img-responsive" src="images/xtremis.jpg">
+              <div class="family-links ">
+                <div class="family-links-list">
+                  <a href="#" target="_blank"><i class="fab fa-telegram"></i></a>
+                  <a href="#" target="_blank"><i class="fab fa-google-plus"></i></a>
+                </div>
+                <!-- /.family-links-list -->
+              </div>
+              <!-- /.family-links -->
+            </div>
+            <!-- /.family-image -->
+            <div class="family-content text-center">
+              <div class="family-name">Xtremis Project</div>
+              <div class="family-role">
+                <h4>Chrome OS ROM</h4>
+              </div>
+              <h4 class="family-description"> Currently pre-release, this project is progressing steadily and will soon have more details to share. Please check in later.</h4>
+            </div>
+            <!-- /.family-content -->
+          </div>
+          <!-- /.family -->
+        </div>
+        <div class="col-lg-4">
+          <div class="family">
+            <div class="family-image text-center">
+              <img class="img-circle img-responsive" src="images/soap.jpg">
+              <div class="family-links ">
+                <div class="family-links-list">
+                  <a href="https://plus.google.com/u/0/107610198397215674589" target="_blank"><i class="fab fa-google-plus"></i></a>
+                  <!--<a href="#" target="_blank"><i class="fa fa-google-plus"></i></a> -->
+                </div>
+                <!-- /.family-links-list -->
+              </div>
+              <!-- /.family-links -->
+            </div>
+            <!-- /.family-image -->
+            <div class="family-content text-center">
+              <div class="family-name">SOAP ROM</div>
+              <div class="family-role">
+                <h4>SixOpenAndroidProject ROM, AOSP</h4>
+              </div>
+              <h4 class="family-description"> SOAP is an AOSP ROM that focuses on being a slim and clean ROM.</h4>
+            </div>
+            <!-- /.family-content -->
+          </div>
+          <!-- /.family -->
+        </div>
+		<div class="center col-lg-4">
+			<h2 class="text-center">&nbsp;<br></h2>
+			<h2 class="text-center">&nbsp;<br></h2>
+		</div>
+      </div>
+    </div>
+  </div>
+  <!-- End #About -->
+  <footer class="footer">
+    <div class="footer container-fluid ">
+      <div class="container-fluid">
+        <div class="row ">
+          <div class="col-xs-6 col-sm-3 column footer-header">
+            <h4 class="footer-header">Information</h4>
+            <ul class="list-unstyled">
+              <li class="portfolio-projects--desc">
+                <a href="#portfolio">Downloads</a>
+              </li>
+              <li class="portfolio-projects--desc">
+                <a href="#contact">Links</a>
+              </li>
+              <li class="portfolio-projects--desc">
+                <a href="#team">Team</a>
+              </li>
+            </ul>
+          </div>
+          <div class="col-xs-6 col-sm-3 column footer-header">
+            <h4 class="footer-header">About</h4>
+            <ul class="list-unstyled">
+              <li class="portfolio-projects--desc">
+                <a href="#about">Bliss</a>
+              </li>
+              <li class="portfolio-projects--desc">
+                <a href="#family">Family</a>
+              </li>
+              <li class="portfolio-projects--desc">
+                <a href="https://www.paypal.me/TeamBliss">Donate</a>
+              </li>
+            </ul>
+          </div>
+          <div class="col-xs-12 col-sm-3 column footer-header">
+            <h4 class="footer-header">Get In Touch</h4>
+            <form action="mailto:blissfamilyroms@gmail.com" method="GET" data-form-title="CONTACT US">
+              <input type="hidden" data-form-email="true">
+              <div class="form-group">
+                <input type="text" class="form-control" name="name" required="" placeholder="Name*" data-form-field="Name">
+              </div>
+              <div class="form-group">
+                <input type="email" class="form-control" name="email" required="" placeholder="Email*" data-form-field="Email">
+              </div>
+              <div class="form-group">
+                <textarea class="form-control" name="message" placeholder="Message" rows="3" data-form-field="Message"></textarea>
+              </div>
+              <div>
+                <button type="submit" class="btn btn-lg btn-danger">SEND</button>
+              </div>
+            </form>
+          </div>
+          <div class="col-xs-12 col-sm-3 text-right footer-header">
+            <h4 class="footer-header">Follow</h4>
+            <ul class="list-inline">
+              <li class="">
+                <a rel="nofollow" href="https://t.me/OfficialBlissROMs" title="Telegram"><i class="fab fa-telegram fa-4x"></i></a>&nbsp; </li>
+              <li class="">
+                <a rel="nofollow" href="https://www.facebook.com/BlissFamilyOfROMs/" title="Facebook"><i class="fab fa-facebook fa-4x"></i></a>&nbsp; </li>
+              <li class="">
+                <a rel="nofollow" href="https://plus.google.com/communities/118265887490106132524" title="Google+"><i class="fab fa-google-plus fa-4x"></i></a>
+              </li>
+              <li class="">
+                <a rel="nofollow" href="https://twitter.com/Bliss_Roms" title="Twitter"><i class="fab fa-twitter fa-4x"></i></a>
+              </li>
+            </ul>
+          </div>
+        </div>
+        <br>
+        <span class="pull-right text-muted small"><a href="https://blissroms.com">Bliss Site by Team Bliss</a> ©2017-2018 Team Bliss</span>
+      </div>
+    </div>
+  </footer>
+  <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.3.1/js/tether.min.js" type="text/javascript"></script>
+  <!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js" type="text/javascript"></script> -->
+  
+  <script src='https://code.jquery.com/jquery-2.2.4.min.js'></script>
+  <script src='https://cdnjs.cloudflare.com/ajax/libs/waypoints/2.0.3/waypoints.min.js'></script>
+  <script src='https://bfintal.github.io/Counter-Up/jquery.counterup.min.js'></script>
+  <script  src="js/counter.js"></script>
+  
+  <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" type="text/javascript"></script>
+  <script src="https://cdn.jsdelivr.net/jquery.scrollto/2.1.0/jquery.scrollTo.min.js" type="text/javascript"></script>
+  <!--<script src="js/jquery-2.1.1.js" type="text/javascript"></script> -->
+  <script src="js/jquery.mixitup.min.js" type="text/javascript"></script>
+  <script src="js/main.js" type="text/javascript"></script>
+  <script src="js/mainani.js" type="text/javascript"></script>
+  <script src="js/script.js" type="text/javascript"></script>
+  <script type="text/javascript">
+    // Select all links with hashes
+    $('a[href*="#"]')
+      // Remove links that don't actually link to anything
+      .not('[href="#"]').not('[href="#0"]').click(function(event) {
+        // On-page links
+        if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
+          // Figure out element to scroll to
+          var target = $(this.hash);
+          target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
+          // Does a scroll target exist?
+          if (target.length) {
+            // Only prevent default if animation is actually gonna happen
+            event.preventDefault();
+            $('html, body').animate({
+              scrollTop: target.offset().top
+            }, 1000, function() {
+              // Callback after animation
+              // Must change focus!
+              var $target = $(target);
+              $target.focus();
+              if ($target.is(":focus")) { // Checking if the target was focused
+                return false;
+              } else {
+                $target.attr('tabindex', '-1'); // Adding tabindex for elements not focusable
+                $target.focus(); // Set focus again
+              };
+            });
+          }
+        }
+      });
+  </script>
+</body>
+
+</html>
\ No newline at end of file
