diff --git a/site/_data/project.yml b/site/_data/project.yml
index 8db830e..422f40d 100644
--- a/site/_data/project.yml
+++ b/site/_data/project.yml
@@ -22,7 +22,8 @@
 description: Apache Bahir provides extensions to distributed analytic platforms such as Apache Spark.
 
 download: /download
-latest_release:
+latest_release: 2.0.0-preview
+latest_release_date: 07/01/2016
 
 dev_list: dev@bahir.apache.org
 dev_list_subscribe: dev-subscribe@bahir.apache.org
diff --git a/site/_data/releases.yml b/site/_data/releases.yml
new file mode 100644
index 0000000..993c34f
--- /dev/null
+++ b/site/_data/releases.yml
@@ -0,0 +1,21 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+- version: 2.0.0
+  date: 08/10/2016
+
+- version: 2.0.0-preview
+  date: 07/01/2016
\ No newline at end of file
diff --git a/site/_includes/themes/apache-clean/_navigation.html b/site/_includes/themes/apache-clean/_navigation.html
index 693e1a6..c1b917a 100644
--- a/site/_includes/themes/apache-clean/_navigation.html
+++ b/site/_includes/themes/apache-clean/_navigation.html
@@ -6,7 +6,7 @@
     <p>{{ site.data.project.description }}</p>
 
     {% if site.data.project.latest_release %}
-    <a href="{{ site.data.project.download }}" class="btn btn-primary btn-lg bigFingerButton" role="button">Get {{ site.data.project.short_name }}</a></p>
+    <a href="{{ site.data.project.download }}" class="btn btn-primary btn-lg bigFingerButton" role="button">Download {{ site.data.project.name }} {{site.data.project.latest_release}}</a></p>
     {% endif %}
   </div>
 </div>
diff --git a/site/download.md b/site/download.md
index d24c5b8..68f10f8 100644
--- a/site/download.md
+++ b/site/download.md
@@ -26,39 +26,56 @@
 
 ## {{ site.data.project.name }} Downloads
 
-{{ site.data.project.name }} will be released as a source and binary artifacts, as well as through Maven.
+Please find below the latest releases of {{ site.data.project.name }}. Note that the binary artifacts are also published through Maven.
 
-### Source releases
+### Latest Release 
 
-Release          | Date       | Commit   | Download
-:--------------- | :--------- | :------- | :-------
-{% for post in site.categories.release %}{% comment %}
-{% endcomment %}{% if post.fullVersion %}{% comment %}
-{% endcomment %}{% assign v = post.fullVersion %}{% comment %}
-{% endcomment %}{% else %}{% comment %}
-{% endcomment %}{% capture v %}apache-{{ site.data.project.unix_name }}-{{ post.version }}{% endcapture %}{% comment %}
-{% endcomment %}{% endif %}{% comment %}
-{% endcomment %}{% if forloop.index0 < 2 %}{% comment %}
-{% endcomment %}{% capture p %}http://www.apache.org/dyn/closer.lua?filename={{ site.data.project.unix_name }}/{{ v }}{% endcapture %}{% comment %}
-{% endcomment %}{% assign q = "&action=download" %}{% comment %}
-{% endcomment %}{% assign d = "https://www.apache.org/dist" %}{% comment %}
-{% endcomment %}{% else %}{% comment %}
-{% endcomment %}{% capture p %}http://archive.apache.org/dist/incubator/{{ site.data.project.unix_name }}/{{ v }}{% endcapture %}{% comment %}
-{% endcomment %}{% assign q = "" %}{% comment %}
-{% endcomment %}{% assign d = "https://archive.apache.org/dist/incubator" %}{% comment %}
-{% endcomment %}{% endif %}{% comment %}
-{% endcomment %}<a href="{{ site.baseurl }}/history.html#{{ post.tag }}">{{ post.version }}</a>{% comment %}
-{% endcomment %} | {{ post.date | date_to_string }}{% comment %}
-{% endcomment %} | <a href="https://github.com/apache/{{ site.data.project.unix_name }}/commit/{{ post.sha }}">{{ post.sha }}</a>{% comment %}
-{% endcomment %} | <a href="{{ p }}/{{ v }}-src.tar.gz{{ q }}">tar</a>{% comment %}
-{% endcomment %} (<a href="{{ d }}/{{ site.data.project.unix_name }}/{{ v }}/{{ v }}-src.tar.gz.md5">md5</a>{% comment %}
-{% endcomment %} <a href="{{ d }}/{{ site.data.project.unix_name }}/{{ v }}/{{ v }}-src.tar.gz.asc">pgp</a>){% comment %}
-{% endcomment %} {% raw %}<br>{% endraw %}{% comment %}
-{% endcomment %} <a href="{{ p }}/{{ v }}-src.zip{{ q }}">zip</a>{% comment %}
-{% endcomment %} (<a href="{{ d }}/{{ site.data.project.unix_name }}/{{ v }}/{{ v }}-src.zip.md5">md5</a>{% comment %}
-{% endcomment %} <a href="{{ d }}/{{ site.data.project.unix_name }}/{{ v }}/{{ v }}-src.zip.asc">pgp</a>){% comment %}
-{% endcomment %}
-{% endfor %}
+Our latest release is {{ site.data.project.name }} {{site.data.project.latest_release}}, released on ({{site.data.project.latest_release_date}}).
+
+{% if site.data.project.latest_release %}
+<table class="table table-hover sortable">
+    <thead>
+        <tr>
+            <th><b>Name</b></th>
+            <th><b>Archive</b></th>
+            <th><b>MD5</b></th>
+            <!--th><b>SHA-1</b></th-->
+            <th><b>signature</b></th>
+        </tr>
+    </thead>
+    <tbody>
+        <tr>
+            <td>{{ site.data.project.name }} {{site.data.project.latest_release}} (tar.gz)</td>
+            <td><a href="http://www.apache.org/dyn/closer.lua/{{site.data.project.unix_name}}/{{site.data.project.latest_release}}/apache-bahir-{{site.data.project.latest_release}}-src.tar.gz">tar.gz</a></td>
+            <td><a href="http://www.apache.org/dist/{{site.data.project.unix_name}}/{{site.data.project.latest_release}}/apache-bahir-{{site.data.project.latest_release}}-src.tar.gz.md5">MD5</a></td>
+            <!--td><a href="http://www.apache.org/dist/{{site.data.project.unix_name}}/{{site.data.project.latest_release}}/apache-bahir-{{site.data.project.latest_release}}-src.tar.gz.sha1">SHA-1</a></td-->
+            <td><a href="http://www.apache.org/dist/{{site.data.project.unix_name}}/{{site.data.project.latest_release}}/apache-bahir-{{site.data.project.latest_release}}-src.tar.gz.asc">ASC</a></td>
+        </tr>
+        <tr>
+            <td>{{ site.data.project.name }} {{site.data.project.latest_release}} (zip)</td>
+            <td><a href="http://www.apache.org/dyn/closer.lua/{{site.data.project.unix_name}}/{{site.data.project.latest_release}}/apache-bahir-{{site.data.project.latest_release}}-src.zip">zip</a></td>
+            <td><a href="http://www.apache.org/dist/{{site.data.project.unix_name}}/{{site.data.project.latest_release}}/apache-bahir-{{site.data.project.latest_release}}-src.zip.md5">MD5</a></td>
+            <!--td><a href="http://www.apache.org/dist/{{site.data.project.unix_name}}/{{site.data.project.latest_release}}/apache-bahir-{{site.data.project.latest_release}}-src.zip.sha1">SHA-1</a></td-->
+            <td><a href="http://www.apache.org/dist/{{site.data.project.unix_name}}/{{site.data.project.latest_release}}/apache-bahir-{{site.data.project.latest_release}}-src.zip.asc">ASC</a></td>
+        </tr>
+    </tbody>
+</table>
+{% endif %}
+
+
+Instructions for checking hashes and signatures is indicated on the [Verifying Apache Software Foundation Releases](http://www.apache.org/info/verification.html) page.
+
+You can also retrieve the source files from our svn repository by typing :
+
+<pre>
+git clone https://github.com/apache/bahir
+cd bahir
+git checkout -b tags/v{{site.data.project.latest_release}} v{{site.data.project.latest_release}}
+</pre>
+
+
+
+### Verifying a Release
 
 Choose a source distribution in either *tar* or *zip* format,
 and [verify](http://www.apache.org/dyn/closer.cgi#verify)
@@ -69,10 +86,13 @@
 
 For fast downloads, current source distributions are hosted on mirror servers;
 older source distributions are in the
-[archive](http://archive.apache.org/dist/incubator/{{ site.data.project.unix_name }}/).
+[archive](http://archive.apache.org/dist/{{ site.data.project.unix_name }}/).
 If a download from a mirror fails, retry, and the second download will likely
 succeed.
 
 For security, hash and signature files are always hosted at
 [Apache](https://www.apache.org/dist).
 
+### Previous Releases
+
+All previous releases of Apache Wink can be found in the [archives](http://archive.apache.org/dist/bahir/). 
