diff --git a/index.html b/index.html
index 1446176..90eae5c 100644
--- a/index.html
+++ b/index.html
@@ -61,62 +61,26 @@
     <section class="section">
       <h3 class="center-align">Platform for Digital Financial Services</h3>
       <p class="flow-text justify-align">
-        Apache Fineract (&#92;&#8217;f&#299;n-,&#1241;-,rakt&#92;) is an open source system for core banking as a platform. Fineract provides a reliable, robust, and affordable solution for entrepreneurs, financial institutions, and service providers to offer financial services to the world’s 2 billion underbanked and unbanked.
+        Apache Fineract (&#92;&#8217;f&#299;n-,&#1241;-,rakt&#92;) is open source software for financial services. 
+      </p>
+      <p class="flow-text justify-align">Fineract provides a reliable, robust, and affordable solution for entrepreneurs, financial institutions, and service providers to offer financial services broadly and especially to the world’s 3 billion underbanked and unbanked. Fineract is aimed at innovative, mobile and cloud based solutions, and enables digital transaction accounts for all. 
+      </p>
+	<p class="flow-text justify-align">Fineract 1.x is a cloud hosted platform with open APIs, while Fineract-CN (generation 3) is a cloud native, microservices architecture also supporting open banking APIs. 
       </p>
       <div class="divider"></div>
     </section>
     <section id="about" class="section">
       <h3 class="center-align">About</h3>
       <p class="flow-text justify-align">
-        Apache Fineract can be deployed in any environment: cloud or on-premise, on or offline, mobile or PC; it’s extensible enough to support any organizational type or delivery channel, and flexible enough to support any product, service, or methodology. For any organization, big or small, it will provide the client data management, loan and savings portfolio management, integrated real time accounting, and social and financial reporting needed to bring digital financial services in a modern connected world.
+        Apache Fineract can be deployed in any environment: cloud or on-premise, and front end interfaces on or offline, mobile or PC; it’s extensible enough to support any organizational type or delivery channel, and flexible enough to support any product, service, or lending methodology. For any organization, big or small, it provides the client data management, loan and savings portfolio management, integrated real time accounting, and social and financial reporting needed to bring digital financial services in a modern connected world.
       </p>
-      <article>
-        <h4>Rapid Product Creation</h4>
-        <p class="flow-text justify-align">
-          Our flexible product creation engine allows you to instantly create, configure and roll out brand new products across any of your branches. You can respond to client demand in no time. You can also configure your product mix to ensure clients can only take on a responsible amount of loans at one time.
-        </p>
-      </article>
-      <article>
-        <h4>Multiple Lending Methodologies</h4>
-        <p class="flow-text justify-align">
-          The Apache Fineract API supports
-        </p>
-        <ul class="flow-text justify-align">
-          <li class="circle-list-style">individual lending,</li>
-          <li class="circle-list-style">Grameen Joint Liability Group lending,</li>
-          <li class="circle-list-style">multi-tranche loans,</li>
-          <li class="circle-list-style">standing instructions for automated payments,</li>
-          <li class="circle-list-style">and co-op lending.</li>
-        </ul>
-        <p class="flow-text justify-align">
-          For group lending, we have full functionality to configure and manage groups including client, group, center information and hierarchy.
-        </p>
-      </article>
-      <article>
-        <h4>Full Range of Deposit Products</h4>
-        <p class="flow-text justify-align">
-          Savings is one of the most proven services in the financial inclusion toolkit. Apache Fineract supports your organization as it moves beyond basic passbook savings with support for
-        </p>
-        <ul class="flow-text justify-align">
-          <li class="circle-list-style">fixed (term) deposits,</li>
-          <li class="circle-list-style">recurring deposits,</li>
-          <li class="circle-list-style">and current accounts.</li>
-        </ul>
-        <p class="flow-text justify-align">
-          Your client can benefit from a fluid mix of deposit and credit products to help them store up the funds to resist shocks and grow income needed to make larger purchases and investments.
-        </p>
-      </article>
-      <article>
-        <h4>Interest, Penalties, and Fees</h4>
-        <p class="flow-text justify-align">
-          Apache Fineract supports:
-        </p>
-        <ul class="flow-text justify-align">
-          <li class="circle-list-style">calculation of interest balance on daily or average daily balance with the ability to specify the compounding period daily or monthly</li>
-          <li class="circle-list-style">flat or percentage-based fees that can be applied and collected on a specific due date</li>
-          <li class="circle-list-style">minimum opening balance and a locking period that can be defined in days, weeks, months, and years</li>
-        </ul>
-      </article>
+	  <p class="flow-text justify-align">Fineract 1.x compares well to other core banking systems and draws from requirements in credit unions, microfinance institutions, and small non-banking financial institutions.  Features include flexible product configuration, KYC documentation support, business rule sets, payment transactions, and portfolio management.  It includes an open API that dates to 2011 and is deployed in relatively high transaction volume environments.  </p> 
+		<p class="flow-text justify-align">Fineract-CN operates on the principle that financial services are an innovative space and so each fineract microservice encapsulates a domain that can be combined with other microservices to create new platform offerings.  Fineract-CN microservices can be combined to create new software platforms for digital financial service providers.   
+	</p>
+	  <p class="flow-text justify-align">Fineract code was originally developed by contributors to Mifos.org, a US Based Charity with a mission for financial inclusion globally. It was brought over to Apache in 2016 and is used by an active community of companies who build solutions for both financial inclusion and fintech innovation. 
+		
+      </p>
+
       <div class="divider"></div>
     </section>
     <section id="contribute" class="section">
@@ -152,6 +116,20 @@
     </section>
     <section id="resources" class="section">
       <h3 class="center-align">Resources</h3>
+	<article>
+	<h4>Frequently Used Links:</h4>
+	<p class="flow-text justify-align"> 
+    Issue tracking: <a href="https://issues.apache.org/jira/projects/FINERACT">https://issues.apache.org/jira/projects/FINERACT </a>
+    </p>
+    <p class="flow-text justify-align">
+	Project management and documents: <a href="https://cwiki.apache.org/confluence/display/FINERACT/Fineract+Home"> https://cwiki.apache.org/confluence/display/FINERACT/Fineract+Home </a>
+	
+	</p>
+	<p class="flow-text justify-align">
+	Getting Started Guide
+	<a href="https://cwiki.apache.org/confluence/display/FINERACT/Getting+Started+Docs">https://cwiki.apache.org/confluence/display/FINERACT/Getting+Started+Docs </a>
+	</p>	
+        </p>
       <article>
         <h4>Download</h4>
         <p class="flow-text justify-align">
@@ -178,9 +156,13 @@
       <article>
         <h4>Repositories</h4>
         <p class="flow-text justify-align">
-          <a href="https://github.com/apache/incubator-fineract" target="_blank">Apache Fineract</a><br/>
+          <a href="https://github.com/apache/fineract" target="_blank">Apache Fineract</a><br/>
           Here you will find the source code for Apache Fineract.
         </p>
+		<p class="flow-text justify-align">
+          <a href="https://github.com/search?q=org%3Aapache+fineract-cn&unscoped_q=fineract-cn" target="_blank">Apache Fineract-CN</a><br/>
+          Here you will find the source code for Apache Fineract Cloud Native. Pre-release version. 
+        </p>
         <p class="flow-text justify-align">
           <a href="https://github.com/apache/incubator-fineract-site" target="_blank">Web Site</a><br/>
           Here you will find the source code for this web site.
