diff --git a/content/about.html b/content/about.html
index 914e398..fec3560 100644
--- a/content/about.html
+++ b/content/about.html
@@ -104,9 +104,9 @@
     <div class="row">
 <div class="col-md-8 col-centered">
 <h2>About Apache AsterixDB</h2>
-<p>Apache AsterixDB™ (incubating) is a highly scalable data management system that can store, index, and manage
-semi-structured data, e.g., much like MongoDB, but it also supports a full-power query language with the expressiveness
-of SQL (and more).
+<p>Apache AsterixDB™ is a highly scalable data management system that can store, index, and manage semi-structured
+data, e.g., much like MongoDB, but it also supports a full-power query language with the expressiveness of SQL (and
+more).
 Unlike analytics engines like Apache Hive or Apache Spark, it stores and manages data, so AsterixDB can exploit its
 knowledge of data partitioning and the availability of indexes to avoid always scanning data set(s) to process queries.
 Somewhat surprisingly, there is no open source parallel database system (relational or otherwise) available to
@@ -139,7 +139,7 @@
 which was to combine the best ideas from the parallel database world, the then new Apache Hadoop world, and the
 semi-structured (e.g., XML/JSON) data world in order to create a next-generation BDMS. A first informal open source
 release was made four years later, in June of 2013, under the Apache Software License 2.0. AsterixDB was accepted into
-the Apache Incubator and began Incubation as of Febuary of 2015.</p>
+the Apache Incubator in Febuary of 2015 and was established as a TLP in April of 2016.</p>
 
 
 </div>
@@ -150,22 +150,6 @@
 
     <footer>
       <div class="row">
-        <div class="col-md-9 col-centered">
-          <div class="col-md-9 text-left">
-            <p>Apache AsterixDB is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored
-              by the Apache Incubator.
-              Incubation is required of all newly accepted projects until a further review indicates that the
-              infrastructure, communications, and decision making process have stabilized in a manner consistent with
-              other successful ASF projects.
-              While incubation status is not necessarily a reflection of the completeness or stability of the code, it
-              does indicate that the project has yet to be fully endorsed by the ASF.</p>
-          </div>
-          <div class="col-md-3 text-right">
-            <img src="img/egg-logo.png" style="height:auto; width:200px; vertical-align:bottom;"/>
-          </div>
-      </div>
-      </div>
-      <div class="row">
         <div class="col-md-9 col-centered text-center">
           <p/>
           <p>&copy; Copyright 2016 The Apache Software foundation. All Rights Reserved. </p>
diff --git a/content/community.html b/content/community.html
index d4f1f80..7c7f599 100644
--- a/content/community.html
+++ b/content/community.html
@@ -104,8 +104,9 @@
     <div class="row">
 <div class="col-md-10 col-centered">
 <h2>Community</h2>
-<p>Apache AsterixDB™ (incubating) strives to support an open and transparent development process.
-Here are the various places where you can find discussions relating to the day to day development of AsterixDB and related projects, as well as answers to any AsterixDB-related questions.</p>
+<p>Apache AsterixDB™ strives to support an open and transparent development process. Here are the various places
+where you can find discussions relating to the day to day development of AsterixDB and related projects, as well as
+answers to any AsterixDB-related questions.</p>
 
 <ul id="markdown-toc">
   <li><a href="#mailing-lists" id="markdown-toc-mailing-lists">Mailing Lists</a></li>
@@ -366,22 +367,6 @@
 
     <footer>
       <div class="row">
-        <div class="col-md-9 col-centered">
-          <div class="col-md-9 text-left">
-            <p>Apache AsterixDB is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored
-              by the Apache Incubator.
-              Incubation is required of all newly accepted projects until a further review indicates that the
-              infrastructure, communications, and decision making process have stabilized in a manner consistent with
-              other successful ASF projects.
-              While incubation status is not necessarily a reflection of the completeness or stability of the code, it
-              does indicate that the project has yet to be fully endorsed by the ASF.</p>
-          </div>
-          <div class="col-md-3 text-right">
-            <img src="img/egg-logo.png" style="height:auto; width:200px; vertical-align:bottom;"/>
-          </div>
-      </div>
-      </div>
-      <div class="row">
         <div class="col-md-9 col-centered text-center">
           <p/>
           <p>&copy; Copyright 2016 The Apache Software foundation. All Rights Reserved. </p>
diff --git a/content/dev-setup.html b/content/dev-setup.html
index efd53cc..57a8e68 100644
--- a/content/dev-setup.html
+++ b/content/dev-setup.html
@@ -137,7 +137,7 @@
 <hr />
 
 <h2 id="introduction">Introduction</h2>
-<p>We warmly welcome any contributions to the Apache AsterixDB™ (incubating) or related (Hyracks, Pregelix) projects.
+<p>We warmly welcome any contributions to the Apache AsterixDB™ or related (Hyracks, Pregelix) projects.
 A great way to start contributing is to pick a bug labelled starter in JIRA and submit a patch for it, to get acquainted with our codebase and development process.</p>
 
 <hr />
@@ -415,22 +415,6 @@
 
     <footer>
       <div class="row">
-        <div class="col-md-9 col-centered">
-          <div class="col-md-9 text-left">
-            <p>Apache AsterixDB is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored
-              by the Apache Incubator.
-              Incubation is required of all newly accepted projects until a further review indicates that the
-              infrastructure, communications, and decision making process have stabilized in a manner consistent with
-              other successful ASF projects.
-              While incubation status is not necessarily a reflection of the completeness or stability of the code, it
-              does indicate that the project has yet to be fully endorsed by the ASF.</p>
-          </div>
-          <div class="col-md-3 text-right">
-            <img src="img/egg-logo.png" style="height:auto; width:200px; vertical-align:bottom;"/>
-          </div>
-      </div>
-      </div>
-      <div class="row">
         <div class="col-md-9 col-centered text-center">
           <p/>
           <p>&copy; Copyright 2016 The Apache Software foundation. All Rights Reserved. </p>
diff --git a/content/download.html b/content/download.html
index ef59e4f..25221e8 100644
--- a/content/download.html
+++ b/content/download.html
@@ -112,7 +112,7 @@
 <div class="row">
 <div class="col-md-6">
 
-    <p>Apache AsterixDB™ (incubating) source releases as a tarball/zip are available on the ASF mirror of your choice.</p>
+    <p>Apache AsterixDB™ source releases as a tarball/zip are available on the ASF mirror of your choice.</p>
 
     <p>Feel free to browse and download the source tree of AsterixDB (and Hyracks) from our GitHub mirror.</p>
 
@@ -179,22 +179,6 @@
 
     <footer>
       <div class="row">
-        <div class="col-md-9 col-centered">
-          <div class="col-md-9 text-left">
-            <p>Apache AsterixDB is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored
-              by the Apache Incubator.
-              Incubation is required of all newly accepted projects until a further review indicates that the
-              infrastructure, communications, and decision making process have stabilized in a manner consistent with
-              other successful ASF projects.
-              While incubation status is not necessarily a reflection of the completeness or stability of the code, it
-              does indicate that the project has yet to be fully endorsed by the ASF.</p>
-          </div>
-          <div class="col-md-3 text-right">
-            <img src="img/egg-logo.png" style="height:auto; width:200px; vertical-align:bottom;"/>
-          </div>
-      </div>
-      </div>
-      <div class="row">
         <div class="col-md-9 col-centered text-center">
           <p/>
           <p>&copy; Copyright 2016 The Apache Software foundation. All Rights Reserved. </p>
diff --git a/content/features.md b/content/features.md
index bbf57ff..84e3184 100644
--- a/content/features.md
+++ b/content/features.md
@@ -1,10 +1,10 @@
 
 # AsterixDB Features#
 
-Apache AsterixDB&trade; (incubating) is a BDMS (Big Data Management System) with a rich feature set that
-sets it apart from other Big Data platforms.
-Its feature set makes it well-suited to modern needs such as web data
-warehousing and social data storage and analysis. AsterixDB has:
+Apache AsterixDB&trade; is a BDMS (Big Data Management System) with a rich feature set that sets it apart from other
+Big Data platforms.
+Its feature set makes it well-suited to modern needs such as web data warehousing and social data storage and analysis.
+AsterixDB has:
 
  * A semistructured NoSQL style data model (ADM) resulting from extending JSON
    with object database ideas
diff --git a/content/index.html b/content/index.html
index bfec007..7013d00 100644
--- a/content/index.html
+++ b/content/index.html
@@ -104,7 +104,7 @@
     <div class="row">
  <div class="col-md-9 col-centered">
    <div class="well text-center"><p class="lead text-center">
-     <strong>Apache AsterixDB</strong>™ (incubating) is an open source Big Data Management System (BDMS).</p>
+     <strong>Apache AsterixDB</strong>™ is an open source Big Data Management System (BDMS).</p>
    </div>
  </div>
 </div>
@@ -270,22 +270,6 @@
 
     <footer>
       <div class="row">
-        <div class="col-md-9 col-centered">
-          <div class="col-md-9 text-left">
-            <p>Apache AsterixDB is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored
-              by the Apache Incubator.
-              Incubation is required of all newly accepted projects until a further review indicates that the
-              infrastructure, communications, and decision making process have stabilized in a manner consistent with
-              other successful ASF projects.
-              While incubation status is not necessarily a reflection of the completeness or stability of the code, it
-              does indicate that the project has yet to be fully endorsed by the ASF.</p>
-          </div>
-          <div class="col-md-3 text-right">
-            <img src="img/egg-logo.png" style="height:auto; width:200px; vertical-align:bottom;"/>
-          </div>
-      </div>
-      </div>
-      <div class="row">
         <div class="col-md-9 col-centered text-center">
           <p/>
           <p>&copy; Copyright 2016 The Apache Software foundation. All Rights Reserved. </p>
diff --git a/content/pushing.html b/content/pushing.html
index 6c84063..8f811b7 100644
--- a/content/pushing.html
+++ b/content/pushing.html
@@ -167,22 +167,6 @@
 
     <footer>
       <div class="row">
-        <div class="col-md-9 col-centered">
-          <div class="col-md-9 text-left">
-            <p>Apache AsterixDB is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored
-              by the Apache Incubator.
-              Incubation is required of all newly accepted projects until a further review indicates that the
-              infrastructure, communications, and decision making process have stabilized in a manner consistent with
-              other successful ASF projects.
-              While incubation status is not necessarily a reflection of the completeness or stability of the code, it
-              does indicate that the project has yet to be fully endorsed by the ASF.</p>
-          </div>
-          <div class="col-md-3 text-right">
-            <img src="img/egg-logo.png" style="height:auto; width:200px; vertical-align:bottom;"/>
-          </div>
-      </div>
-      </div>
-      <div class="row">
         <div class="col-md-9 col-centered text-center">
           <p/>
           <p>&copy; Copyright 2016 The Apache Software foundation. All Rights Reserved. </p>
diff --git a/content/site.html b/content/site.html
index af1ca12..df6b5d4 100644
--- a/content/site.html
+++ b/content/site.html
@@ -225,22 +225,6 @@
 
     <footer>
       <div class="row">
-        <div class="col-md-9 col-centered">
-          <div class="col-md-9 text-left">
-            <p>Apache AsterixDB is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored
-              by the Apache Incubator.
-              Incubation is required of all newly accepted projects until a further review indicates that the
-              infrastructure, communications, and decision making process have stabilized in a manner consistent with
-              other successful ASF projects.
-              While incubation status is not necessarily a reflection of the completeness or stability of the code, it
-              does indicate that the project has yet to be fully endorsed by the ASF.</p>
-          </div>
-          <div class="col-md-3 text-right">
-            <img src="img/egg-logo.png" style="height:auto; width:200px; vertical-align:bottom;"/>
-          </div>
-      </div>
-      </div>
-      <div class="row">
         <div class="col-md-9 col-centered text-center">
           <p/>
           <p>&copy; Copyright 2016 The Apache Software foundation. All Rights Reserved. </p>
diff --git a/content/tools.html b/content/tools.html
index bef6a15..1547df8 100644
--- a/content/tools.html
+++ b/content/tools.html
@@ -104,7 +104,7 @@
     <div class="row">
 <div class="col-md-10 col-centered">
 <h2>Tools</h2>
-<p>Apache AsterixDB™ (incubating) is built and maintained using a variety of open source and commerical tools.
+<p>Apache AsterixDB™ is built and maintained using a variety of open source and commerical tools.
 This page lists some of them, in no particular order.</p>
 
 <ul id="markdown-toc">
@@ -157,22 +157,6 @@
 
     <footer>
       <div class="row">
-        <div class="col-md-9 col-centered">
-          <div class="col-md-9 text-left">
-            <p>Apache AsterixDB is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored
-              by the Apache Incubator.
-              Incubation is required of all newly accepted projects until a further review indicates that the
-              infrastructure, communications, and decision making process have stabilized in a manner consistent with
-              other successful ASF projects.
-              While incubation status is not necessarily a reflection of the completeness or stability of the code, it
-              does indicate that the project has yet to be fully endorsed by the ASF.</p>
-          </div>
-          <div class="col-md-3 text-right">
-            <img src="img/egg-logo.png" style="height:auto; width:200px; vertical-align:bottom;"/>
-          </div>
-      </div>
-      </div>
-      <div class="row">
         <div class="col-md-9 col-centered text-center">
           <p/>
           <p>&copy; Copyright 2016 The Apache Software foundation. All Rights Reserved. </p>
