diff --git a/_projectCommon.php b/_projectCommon.php
index c8622ee..a24e014 100644
--- a/_projectCommon.php
+++ b/_projectCommon.php
@@ -1,58 +1,58 @@
 <?php
 /*******************************************************************************
  * Copyright (c) 2009, 2013 Eclipse Foundation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *		Eclipse Foundation - Initial version
- *		Anthony Hunter - changes for GMF Notation
- ********************************************************************************/
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+*		Eclipse Foundation - Initial version
+*		Anthony Hunter - changes for GMF Notation
+********************************************************************************/
 
-	# Set the theme for your project's web pages.
-	# See http://eclipse.org/phoenix/
-	$theme = "Nova";
-	
+# Set the theme for your project's web pages.
+# See http://eclipse.org/phoenix/
+$theme = "Nova";
 
-	# Define your project-wide Navigation here
-	# This appears on the left of the page if you define a left nav
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# these are optional
-	
-	# If you want to override the eclipse.org navigation, uncomment below.
-	# $Nav->setLinkList(array());
-	
-	# Break the navigation into sections
-	$Nav->addNavSeparator("GMF Notation", 	"/gmf-notation");
-   	$Nav->addCustomNav("Download", "http://www.eclipse.org/modeling/gmp/downloads/?project=gmf-notation", "_self", 3);
-	$Nav->addCustomNav("Documentation", "documentation.php", "_self", 3);
-	$Nav->addCustomNav("Wiki", "http://wiki.eclipse.org/Graphical_Modeling_Framework", "_self", 3);
-	$Nav->addCustomNav("Support", "support.php", "_self", 3);
-	$Nav->addCustomNav("Newsgroup", "http://dev.eclipse.org/newslists/news.eclipse.modeling.gmf/maillist.html", "_self", 3);
-	$Nav->addCustomNav("Mailing List", "https://dev.eclipse.org/mailman/listinfo/gmf-releng", "_self", 3);
-	$Nav->addCustomNav("Modeling Corner", "http://wiki.eclipse.org/Modeling_Corner", "_self", 3);
-	
-	# Define keywords, author and title here, or in each PHP page specifically
-	$pageKeywords	= "eclipse, gmf, gmf notation";
-	$pageAuthor		= "Anthony Hunter";
 
-	# top navigation bar
-	# To override and replace the navigation with your own, uncomment the line below.
-	$Menu->setMenuItemList(array());
-	$Menu->addMenuItem("Eclipse", "/", "_self");
-	$Menu->addMenuItem("GMF Notation", "/gmf-notation", "_self");
-	$Menu->addMenuItem("Download", "http://www.eclipse.org/modeling/gmp/downloads/?project=gmf-notation", "_self");
-	$Menu->addMenuItem("Documentation", "documentation.php", "_self");
-    $Menu->addMenuItem("About", "http://www.eclipse.org/projects/project_summary.php?projectid=modeling.gmp.gmf-notation", "_self");
-	
-	# To define additional CSS or other pre-body headers
-	$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="/gmf-notation/style.css"/>');
-	
-	# To enable occasional Eclipse Foundation Promotion banners on your pages (EclipseCon, etc)
-	$App->Promotion = TRUE;
-	
-	# If you have Google Analytics code, use it here
-	# $App->SetGoogleAnalyticsTrackingCode("YOUR_CODE");
+# Define your project-wide Navigation here
+# This appears on the left of the page if you define a left nav
+# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
+# these are optional
+
+# If you want to override the eclipse.org navigation, uncomment below.
+# $Nav->setLinkList(array());
+
+# Break the navigation into sections
+$Nav->addNavSeparator("GMF Notation", 	"/gmf-notation");
+$Nav->addCustomNav("Downloads", "downloads.php", "_self", 3);
+$Nav->addCustomNav("Documentation", "documentation.php", "_self", 3);
+$Nav->addCustomNav("Wiki", "http://wiki.eclipse.org/Graphical_Modeling_Framework", "_self", 3);
+$Nav->addCustomNav("Support", "support.php", "_self", 3);
+$Nav->addCustomNav("Newsgroup", "http://dev.eclipse.org/newslists/news.eclipse.modeling.gmf/maillist.html", "_self", 3);
+$Nav->addCustomNav("Mailing List", "https://dev.eclipse.org/mailman/listinfo/gmf-releng", "_self", 3);
+$Nav->addCustomNav("Modeling Corner", "http://wiki.eclipse.org/Modeling_Corner", "_self", 3);
+
+# Define keywords, author and title here, or in each PHP page specifically
+$pageKeywords	= "eclipse, gmf, gmf notation";
+$pageAuthor		= "Anthony Hunter";
+
+# top navigation bar
+# To override and replace the navigation with your own, uncomment the line below.
+$Menu->setMenuItemList(array());
+$Menu->addMenuItem("Eclipse", "/", "_self");
+$Menu->addMenuItem("GMF Notation", "/gmf-notation", "_self");
+$Menu->addMenuItem("Downloads", "downloads.php", "_self");
+$Menu->addMenuItem("Documentation", "documentation.php", "_self");
+$Menu->addMenuItem("About", "http://www.eclipse.org/projects/project_summary.php?projectid=modeling.gmp.gmf-notation", "_self");
+
+# To define additional CSS or other pre-body headers
+$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="/gmf-notation/style.css"/>');
+
+# To enable occasional Eclipse Foundation Promotion banners on your pages (EclipseCon, etc)
+$App->Promotion = TRUE;
+
+# If you have Google Analytics code, use it here
+# $App->SetGoogleAnalyticsTrackingCode("YOUR_CODE");
 ?>
\ No newline at end of file
diff --git a/documentation.php b/documentation.php
index fc25ba2..8cfabd7 100644
--- a/documentation.php
+++ b/documentation.php
@@ -1,20 +1,27 @@
-<?php  																														require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
+<?php
 /*******************************************************************************
  * Copyright (c) 2009, 2013 Eclipse Foundation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *		Eclipse Foundation - Initial version
- *		Anthony Hunter - changes for GMF Notation
- ********************************************************************************/
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+*		Eclipse Foundation - Initial version
+*		Anthony Hunter - changes for GMF Notation
+********************************************************************************/
+require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
+require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");
+require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");
+$App = new App();
+$Nav = new Nav();
+$Menu = new Menu();
+include($App->getProjectCommon());
 
-	$pageTitle 		= "GMF Notation Documentation";
-	$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="/gmf-notation/style.css"/>');
+$pageTitle 		= "GMF Notation Documentation";
+$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="/gmf-notation/style.css"/>');
 
-	$html  = <<<EOHTML
+$html  = <<<EOHTML
 <div id="midcolumn">
 <h2>$pageTitle</h2>
 <h3>Reference Documentation</h3>
@@ -22,6 +29,6 @@
 </div>
 EOHTML;
 
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+# Generate the web page
+$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
 ?>
diff --git a/downloads.php b/downloads.php
new file mode 100755
index 0000000..000cdbe
--- /dev/null
+++ b/downloads.php
@@ -0,0 +1,48 @@
+<?php  																														
+/*******************************************************************************
+ * Copyright (c) 2009, 2013 Eclipse Foundation and others.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+*		Eclipse Foundation - Initial version
+*		Anthony Hunter - changes for GMF Notation
+********************************************************************************/
+require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
+require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");
+require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");
+$App = new App();
+$Nav = new Nav();
+$Menu = new Menu();
+include($App->getProjectCommon());
+
+$pageTitle = "GMF Notation Downloads";
+$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="/gmf-notation/style.css"/>');
+
+$html  = <<<EOHTML
+<div id="midcolumn">
+<h2>$pageTitle</h2>
+<p>All downloads are provided under the terms and conditions of the
+<a href="/legal/epl/notice.php">Eclipse Foundation Software User Agreement</a>
+unless otherwise specified.</p>
+
+<h3>Installation via Eclipse Update Manager</h3>
+<p>You may most easily install GMF Notation using the Eclipse Update Manager and point it to one of the <a href="/modeling/gmp/gmf-notation/updates/">GMF Notation Update-Sites</a>.</p>
+
+<h3>Downloadable P2 Repositories and SDK dropins</h3>
+<p>If you prefer an update-site or an SDK archive, you can download it from <a href="/modeling/gmp/downloads/?project=gmf-notation">here directly</a>.</p>
+
+<h3>Nightly Builds</h3>
+<p>The nightly builds can also be used as a P2 repository. The nightly builds for the Kepler simultanious release can be accessed from <a href="https://hudson.eclipse.org/hudson/job/gmf-notation-kepler/">Hudson</a>.</p>
+		
+<h3>Translations</h3>
+<p>Translations packages can be downloaded from the <a href="http://www.eclipse.org/babel/downloads.php">Babel project downloads page</a>.</p>
+
+</div>
+EOHTML;
+
+# Generate the web page
+$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+?>
\ No newline at end of file
diff --git a/getting_involved.php b/getting_involved.php
index bec9e29..282a1c2 100644
--- a/getting_involved.php
+++ b/getting_involved.php
@@ -1,15 +1,22 @@
-<?php  																														require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
+<?php
 /*******************************************************************************
  * Copyright (c) 2009, 2013 Eclipse Foundation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *		Eclipse Foundation - Initial version
- *		Anthony Hunter - changes for GMF Notation
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+*		Eclipse Foundation - Initial version
+*		Anthony Hunter - changes for GMF Notation
 ********************************************************************************/
+require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
+require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");
+require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");
+$App = new App();
+$Nav = new Nav();
+$Menu = new Menu();
+include($App->getProjectCommon());
 
 $pageTitle 		= "GMF Notation Getting Involved";
 $App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="/gmf-notation/style.css"/>');
diff --git a/index.php b/index.php
index 375dad8..521efae 100644
--- a/index.php
+++ b/index.php
@@ -10,7 +10,6 @@
 *		Eclipse Foundation - Initial version
 *		Anthony Hunter - changes for GMF Notation
 ********************************************************************************/
-
 require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
 require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");
 require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");
@@ -28,7 +27,7 @@
 <div id="bigbuttons">
 <h3>Primary Links</h3>
 <ul>
-<li><a id="buttonDownload" href="http://www.eclipse.org/modeling/gmp/downloads/?project=gmf-notation" title="Download">
+<li><a id="buttonDownload" href="downloads.php" title="Download">
 	Downloads, Software Install Site</a></li>
 <li><a id="buttonDocumentation" href="documentation.php" title="Documentation">
 	Tutorials, Examples, Reference Documentation</a></li>
diff --git a/support.php b/support.php
index 69590cf..efbd9e5 100644
--- a/support.php
+++ b/support.php
@@ -1,15 +1,22 @@
-<?php  																														require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
+<?php
 /*******************************************************************************
  * Copyright (c) 2009, 2013 Eclipse Foundation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *		Eclipse Foundation - Initial version
- *		Anthony Hunter - changes for GMF Notation
- ********************************************************************************/
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+*		Eclipse Foundation - Initial version
+*		Anthony Hunter - changes for GMF Notation
+********************************************************************************/
+require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
+require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");
+require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");
+$App = new App();
+$Nav = new Nav();
+$Menu = new Menu();
+include($App->getProjectCommon());
 
 $pageTitle 		= "GMF Notation Support";
 $App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="/gmf-notation/style.css"/>');
