diff --git a/.project b/.project
new file mode 100644
index 0000000..70284ce
--- /dev/null
+++ b/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>gmf-tooling</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/_projectCommon.php b/_projectCommon.php
new file mode 100755
index 0000000..22e55dc
--- /dev/null
+++ b/_projectCommon.php
@@ -0,0 +1,57 @@
+<?php
+
+/*******************************************************************************
+ * Copyright (c) 2009 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:
+ *    
+ *******************************************************************************/
+
+	# 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("MyProject", 	"/default");
+	$Nav->addCustomNav("Download", "/project/download.php", "_self", 3);
+	$Nav->addCustomNav("Documentation", "/project/documentation.php", "_blank", 3);
+	$Nav->addCustomNav("Support", "/project/support.php", "_blank", 3);
+	$Nav->addCustomNav("Getting Involved", "/project/developers", "_blank", 3);
+
+	# Define keywords, author and title here, or in each PHP page specifically
+	$pageKeywords	= "xtext, dsl, modeling, domain specific language, textual";
+	$pageAuthor		= "Your name";
+	# $pageTitle 		= "Xtext";
+
+
+	# top navigation bar
+	# To override and replace the navigation with your own, uncomment the line below.
+	# $Menu->setMenuItemList(array());
+	# $Menu->addMenuItem("Home", "/project", "_self");
+	# $Menu->addMenuItem("Download", "/project/download.php", "_self");
+	# $Menu->addMenuItem("Documentation", "/project/documentation.php", "_self");
+	# $Menu->addMenuItem("Support", "/project/support.php", "_self");
+	# $Menu->addMenuItem("Developers", "/project/developers", "_self");
+	
+	# To define additional CSS or other pre-body headers
+	# $App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="/default/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/download.php b/download.php
new file mode 100644
index 0000000..a4c9eb1
--- /dev/null
+++ b/download.php
@@ -0,0 +1,34 @@
+<?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'
+/*******************************************************************************
+ * Copyright (c) 2009 
+ * 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:
+ *    
+ *******************************************************************************/
+
+	$pageTitle 		= "MyProject - Download";
+	$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="/default/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>Galileo - Eclipse 3.5</h3>
+<p><b>Update site:</b> http://download.eclipse.org/myproject/<br />
+<b>ZIP file: </b><a href="/downloads/download.php?file=/myproject/file.zip">file.zip</a> (10 MiB)</p>
+
+<h3>Helios - Eclipse 3.6 (unreleased)</h3>
+<p><b>Update site:</b> http://download.eclipse.org/myproject/<br />
+<b>ZIP file: </b><a href="/downloads/download.php?file=/myproject/file.zip">file.zip</a> (10 MiB)</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/images/backgroundMain.png b/images/backgroundMain.png
new file mode 100644
index 0000000..6a8578c
--- /dev/null
+++ b/images/backgroundMain.png
Binary files differ
diff --git a/images/backgroundMainEmpty.png b/images/backgroundMainEmpty.png
new file mode 100644
index 0000000..9487b21
--- /dev/null
+++ b/images/backgroundMainEmpty.png
Binary files differ
diff --git a/images/buttonDocumentation.png b/images/buttonDocumentation.png
new file mode 100644
index 0000000..bbfdde0
--- /dev/null
+++ b/images/buttonDocumentation.png
Binary files differ
diff --git a/images/buttonDocumentation_sel.png b/images/buttonDocumentation_sel.png
new file mode 100644
index 0000000..8affb93
--- /dev/null
+++ b/images/buttonDocumentation_sel.png
Binary files differ
diff --git a/images/buttonDownload.png b/images/buttonDownload.png
new file mode 100644
index 0000000..e620092
--- /dev/null
+++ b/images/buttonDownload.png
Binary files differ
diff --git a/images/buttonDownload_new.png b/images/buttonDownload_new.png
new file mode 100644
index 0000000..e620092
--- /dev/null
+++ b/images/buttonDownload_new.png
Binary files differ
diff --git a/images/buttonDownload_sel.png b/images/buttonDownload_sel.png
new file mode 100644
index 0000000..d3a0330
--- /dev/null
+++ b/images/buttonDownload_sel.png
Binary files differ
diff --git a/images/buttonInvolved.png b/images/buttonInvolved.png
new file mode 100644
index 0000000..b3e9a82
--- /dev/null
+++ b/images/buttonInvolved.png
Binary files differ
diff --git a/images/buttonInvolved_sel.png b/images/buttonInvolved_sel.png
new file mode 100644
index 0000000..346a452
--- /dev/null
+++ b/images/buttonInvolved_sel.png
Binary files differ
diff --git a/images/buttonSupport.png b/images/buttonSupport.png
new file mode 100644
index 0000000..bd36086
--- /dev/null
+++ b/images/buttonSupport.png
Binary files differ
diff --git a/images/buttonSupport_sel.png b/images/buttonSupport_sel.png
new file mode 100644
index 0000000..a535fe8
--- /dev/null
+++ b/images/buttonSupport_sel.png
Binary files differ
diff --git a/index.php b/index.php
new file mode 100755
index 0000000..ab12bd1
--- /dev/null
+++ b/index.php
@@ -0,0 +1,30 @@
+<?php
+/*******************************************************************************
+ * Copyright (c) 2009 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:
+ *    
+ *******************************************************************************/
+
+	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());
+	$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="/default/style.css"/>');
+	
+	$localVersion = false;
+	
+	# Define these here, or in _projectCommon.php for site-wide values
+	$pageKeywords	= "eclipse, project";
+	$pageAuthor		= "Your name";
+	$pageTitle 		= "My project home";
+	
+	
+	// 	# Paste your HTML content between the EOHTML markers!
+	$html = file_get_contents('pages/_index.html');
+
+	# Generate the web page
+	$App->generatePage($theme, $Menu, null, $pageAuthor, $pageKeywords, $pageTitle, $html);
+
+?>
\ No newline at end of file
diff --git a/midcolumn_example.php b/midcolumn_example.php
new file mode 100644
index 0000000..e8b3466
--- /dev/null
+++ b/midcolumn_example.php
@@ -0,0 +1,91 @@
+<?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'
+/*******************************************************************************
+ * Copyright (c) 2009 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:
+ *    
+ *******************************************************************************/
+
+	#
+	# Begin: page-specific settings.  Change these. 
+	$pageTitle 		= "Nova #midcolumn Template";
+	$pageKeywords	= "Nova, template, #midcolumn";
+	$pageAuthor		= "Nathan Gervais";
+		
+	# Paste your HTML content between the EOHTML markers!	
+	ob_start();
+	?>
+	<div id="midcolumn">
+		<h1>&lt;H1&gt; tag</h1>
+		
+		<p>
+			This is a &lt;p&gt; tag.  
+		</p>
+		
+		<p>
+			This is a &lt;p&gt; tag.  With a lot of text. <br/>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+		</p>
+		
+		
+		<h3>&lt;h3&gt; tag</h3>
+		<div class="homeitem">
+			<ul>
+				<li>This is an unordered list</li>
+				<li>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</li>
+				<li>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</li>
+ 				<li>Curabitur vel lorem in turpis adipiscing dictum. Nunc mi est, scelerisque vitae, venenatis et, euismod et, sem. Praesent aliquet mi vel felis. Pellentesque pellentesque convallis ante. Praesent imperdiet velit vitae justo. Nullam quis purus. Aenean neque enim, consequat non, mattis eu, gravida sed, massa.</li>
+			</ul>
+			<ol> 
+				<li>This is an ordered list</li>
+				<li>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</li>
+				<li>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</li>
+ 				<li>Curabitur vel lorem in turpis adipiscing dictum. Nunc mi est, scelerisque vitae, venenatis et, euismod et, sem. Praesent aliquet mi vel felis. Pellentesque pellentesque convallis ante. Praesent imperdiet velit vitae justo. Nullam quis purus. Aenean neque enim, consequat non, mattis eu, gravida sed, massa.</li>
+			</ol>				
+		</div>
+		
+		<h2>&lt;h2&gt; tag</h2>
+		<table>
+			<tr>
+				<td>Tables look </td>
+				<td>like this</td>
+			</tr>
+			<tr>
+				<td>Data</td>
+				<td>Data</td>
+			</tr>
+			<tr>
+				<td>Data</td>
+				<td>Data</td>
+			</tr>
+		</table>
+		
+	</div>
+
+	<!-- remove the entire <div> tag to omit the right column!  -->
+	<div id="rightcolumn">
+		<div class="sideitem">
+			<h6>Related Links</h6>
+			<ul>
+				<li><a href="midcolumn.php">#midcolumn Template</a></li>
+				<li><a href="fullcolumn.php">#fullcolumn Template</a></li>
+			</ul>
+		</div>
+		<div class="sideitem">
+			<h6>&lt;h6&gt; tag</h6>
+				<div class="modal">
+					Wrapping your content using a div.modal tag here will add the gradient background
+				</div>
+		</div>
+	</div>
+
+	
+	<?
+	$html = ob_get_clean();
+
+	# Generate the web page
+	$App->generatePage('Nova', $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+?>
\ No newline at end of file
diff --git a/pages/_index.html b/pages/_index.html
new file mode 100644
index 0000000..e320ed2
--- /dev/null
+++ b/pages/_index.html
@@ -0,0 +1,91 @@
+<div id="bigbuttons">
+<h3>Primary Links</h3>
+<ul>
+	<li><a id="buttonDownload" href="download.php" title="Download">Eclipse
+	Distribution, Update Site, Dropins</a></li>
+	<li><a id="buttonDocumentation" href="midcolumn_example.php"
+		title="Documentation">Tutorials, Examples, Videos, Reference Documentation</a></li>
+	<li><a id="buttonSupport" href="midcolumn_example.php" title="Download">Bug
+	Tracker, Newsgroup, Professional Support</a></li>
+	<li><a id="buttonInvolved" href="midcolumn_example.php" title="Getting Involved">CVS,
+	Workspace Setup, Wiki, Committers</a></li>
+</ul>
+</div>
+
+<div id="midcolumn">
+<h3>MyProject - use this header describe what it does</h3>
+<div id="introText">
+
+<p class="left">MyProject is a framework for development of cool stuff and
+more cool stuff. Just describe your project here very briefly. Use the center 
+section below for a screenshot, a screenshot collage or a screencast.</p>
+
+<p class="right"> This project was just provisioned.  You can see the proposal 
+<a href="/proposals/gmf-tooling">here</a>
+
+</p>
+
+</div>
+
+ 
+
+<div id="screencast">
+<object width="640" height="480"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=8260921&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=DBD7EF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=8260921&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=DBD7EF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="480"></embed></object>
+</div>
+
+<!-- 
+<h3>...and yet powerful</h3>
+ -->
+<div id="feature_1">
+
+<h4>Some cool feature</h4>
+<p>MyProject has this really cool feature that you describe here in few words, just as a teaser.</p>
+</div>
+
+<div id="feature_2">
+<h4>Another Feature</h4>
+<p>When working with MyProject, great things happen, and one of them is described here.</p>
+</div>
+
+<div id="feature_3">
+<h4>Another Feature</h4>
+<p>When working with MyProject, great things happen, and one of them is described here.</p>
+</div>
+
+<div id="feature_4">
+<h4>User Experience</h4>
+<p>
+Experiment with style.css to create columns for text, just the way you want it. This section 
+is a bit wider and can contain more words, even small logos or graphics to describe a neat feature in more detail.</p>
+</div>
+
+<div id="feature_more">
+<h4>and much more...</h4>
+<p>Read the MyProject <a href="/project/documentation.php">documentation</a> and join the discussion at the <a href="http://www.eclipse.org/forums/eclipse.newsgroup.name">forum</a> to understand how powerful MyProject is.</p>
+<p> Want to know more? <a href="/projects/project_summary.php?projectid=modeling.gmp.gmf-tooling">About This Project</a>
+</div>
+
+</div>
+
+<div id="rightcolumn">
+
+<div>
+<h3>Current Status</h3>
+<p>Update this section occasionally to let your community know what's new and exciting with your project....</p>
+</div>
+
+<div id="headlines">
+<h3>New and Noteworthy</h3>
+<p>... or a link to your new and noteworthy.</p>
+</div>
+
+<div id="headlines">
+<h3>Headlines on the web</h3>
+<p>Project headlines...</p>
+</div>
+
+<div id="headlines">
+<h3>Another announcement</h3>
+<p>MyProject is pleased to announce...</p>
+</div>
+</div>
\ No newline at end of file
diff --git a/project-info/executive-summary.html b/project-info/executive-summary.html
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/project-info/executive-summary.html
diff --git a/project-info/home-page-one-liner.html b/project-info/home-page-one-liner.html
new file mode 100755
index 0000000..e9b2050
--- /dev/null
+++ b/project-info/home-page-one-liner.html
@@ -0,0 +1 @@
+Phoenix
\ No newline at end of file
diff --git a/project-info/maillist b/project-info/maillist
new file mode 100755
index 0000000..c191d00
--- /dev/null
+++ b/project-info/maillist
@@ -0,0 +1 @@
+::epf-dev::Mailing list for the Eclipse Process Framework Project.
\ No newline at end of file
diff --git a/project-info/newsgroup b/project-info/newsgroup
new file mode 100755
index 0000000..4cb94f6
--- /dev/null
+++ b/project-info/newsgroup
@@ -0,0 +1 @@
+::eclipse.technology.epf::The Eclipse Process Framework (EPF) aims at producing a customizable software process enginering framework, with exemplary process content and tools, supporting a broad variety of project types and development styles. Want to know more? See the EPF home page.
\ No newline at end of file
diff --git a/project-info/project-info.xml b/project-info/project-info.xml
new file mode 100755
index 0000000..c3bf39f
--- /dev/null
+++ b/project-info/project-info.xml
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<project>
+  <!--
+     - This example is annotated to be instructive. In order to be instructive, the
+     - example is a mish-mash of information from a variety of projects. Obviously, 
+     - when you write the project-info.xml file for your project, the file will 
+     - contain information only about your one project.
+    -->
+  <!--
+     - Unless otherwise specified, all URLs are to be specified using rooted relative
+     - paths. In other words:
+     -    CORRECT: "/webtools/foo/bar.php"
+     -    INCORRECT: "foo/bar.php"
+     -    INCORRECT: "http://www.eclipse.org/webtools/foo/bar.php"
+    -->
+  
+  <!--
+     - Each Eclipse project as an official name, e.g., 
+     - "AJDT - AspectJ Development Tools Project" and a foundation database 
+     - key, e.g., "technology.ajdt". These are stored in an Eclipse Foundation
+     - database; You can override the name stored on the database by filling 
+     - the <name/> tag
+    -->
+  <name>Phoenix Project</name>
+    
+  <!--     
+     - Each project can also have a short name to be used in HTML lists and 
+     - other horizontally challenged places.
+    -->
+  <short-name>Phoenix</short-name>
+  
+  <!--
+     - Each Eclipse project has one or more Bugzilla products and components.
+     - Some projects also have a separate web page describing how to submit
+     - a bug, how bugs are prioritized, and other useful information.
+     - The <bugzilla> collects this information.
+     - 
+     - <bugzilla url="..."> <product name="..."/> ... </bugzilla>
+     - The url is optional; if absent, the url will default to the Bugzilla
+     - page of the first product. Multiple <product>s are allowed.
+    -->
+  <bugzilla>
+    <product name="Phoenix"/>
+  </bugzilla>
+
+  <!--
+     - Committers and non-committer Contributors are the raison d'etre of 
+     - an Eclipse project, thus each project should list and acknowledge these
+     - developers. Some of the Committers are 'special' in the sense that
+     - they are the project leaders.  The <team> element contains the 
+     - URL of the project's pages listing these important people.
+    -->
+  <team url="/phoenix/about.php" />
+  
+  <!--
+     - The source code of each Eclipse project is stored in CVS. Eclipse maintains
+     - a number of CVS repositories, thus the <cvs> element specifies which
+     - CVS repository and (if applicable) which root path stores this project's
+     - source code.
+     -
+     - A top-level project typically specifies only the repository:
+     -     <cvs repository="/cvsroot/tptp"/>
+     - A sub-project includes the root path as well:
+     -     <cvs repository="/cvsroot/technology/">
+     -       <module path="org.eclipse.higgins" />
+     -     </cvs>
+    -->
+  <cvs repository="/cvsroot/technology/">
+    <module path="org.eclipse.phoenix" /> 
+  </cvs>
+
+  <!--
+     - The description of an Eclipse project shows up in many places: the
+     - project's home page, perhaps the /projects/ page listing all the
+     - top-level projects, in the Roadmap, and so on. Some of the descriptions
+     - are separate HTML files (such as those described in 
+     - http://phoenix.eclipse.org/projects/dev_process/project-status-infrastructure.php).
+     - It would be nice 
+     - This <description> element contains two additional descriptions.
+     -    1. The optional <description url="..."> points to a web page with a larger
+     -       description of the entire project. 
+     -    2. The required <description paragraph-url="..."> points to a file
+     -       containing a couple of simple HTML paragraphs describing the project. 
+     -       This file is often stored in the /project-info/ directory, thus the
+     -       url would be something like "/tptp/project-info/description.html".
+    -->
+  <description url="/phoenix/about.php"
+     paragraph-url="/phoenix/project-info/project-page-paragraph.html"/>
+  
+  <!--
+     - In addition to the description, each Eclipse project is also required to
+     - provide an up-to-date status summary. "Up to date" means revised at least
+     - quarterly. 
+     - The required <summary paragraph-url="..."> points to a file
+     - containing a number of simple HTML paragraphs with an executive summary
+     - of the project status.
+     - This file is often stored in the /project-info/ directory, thus the
+     - url would be something like "/technology/project-info/executive-summary.html".
+    -->
+  <summary paragraph-url="/technology/phoenix/project-info/executive-summary.html"/>
+
+  <!--
+     - It is important to help new users get started with an Eclipse project
+     - because most Eclipse projects are solving some difficult technical
+     - problem and thus are somewhat complex. The <getting-started> element
+     - points to a web page on the project's site that describes how to
+     - get started using and extending the project's tools and frameworks.
+    -->
+  <getting-started url="/phoenix/docs/" />
+  
+  <!--
+     - It is also important to help new contributors get started with an Eclipse project.
+     - Most Eclipse projects have interesting/complex development environment
+     - setups or to-do lists. The <contributing> element
+     - points to a web page on the project's site that describes how to
+     - get started developing on, and contributing to, the project.
+    -->
+  <contributing url="/phoenix/docs/" />
+  
+  <!--
+     - Each Eclipse project is required to maintain a current Project IP Log.
+     - See http://www.eclipse.org/projects/dev_process/project-log.php
+     - The <ip-log> contains the URL of that log.  If the project has
+     - other legal information as well, it can use the <legal> element
+     - instead and then include the IP Log information on the Legal web page.
+    -->
+  <ip-log url="" /> 
+  <legal url="" /> 
+
+  <!--
+     - Each Eclipse project has one or more mailing lists.
+     - Some projects also have a separate web page describing these lists
+     - while others rely on the main Eclipse mailing lists page.
+     - 
+     - <mailing-lists url="..."> <list name="..."/> ... </mailing-lists>
+     - The url is optional; if absent, the url will default to the Eclipse
+     - mailing lists page. Multiple <lists>s are allowed.
+     -
+     - Note that currently mailing lists must be redundantly listed in
+     - the separate project-info/maillist file as well.
+    -->
+  <mailing-lists>
+    <list name="phoenix-dev"/>
+  </mailing-lists>
+  
+  <!--
+     - Each Eclipse project has one or more newsgroups.
+     - Some projects also have a separate web page describing these lists
+     - while others rely on the main Eclipse newsgroups page.
+     - 
+     - <newsgroups url="..."> <newsgroup name="..."/> ... </newsgroups>
+     - The url is optional; if absent, the url will default to the Eclipse
+     - newsgroups page. Multiple <newsgroups>s are allowed.
+    -->
+  <newsgroups>
+    <newsgroup name="eclipse.technology.phoenix" />
+  </newsgroups>
+  
+  <!--
+     - The dashboard attempts to measure the liveness of a project in many
+     - ways including the traffic on the mailing lists and newsgroups. There
+     - are other places where significant project-related traffic can occur
+     - including blogs and articles. When listed here, the dashboard incorporates
+     - them into the liveness measure (or rather, "will incorporate").
+    -->
+  <articles>
+  </articles>
+  
+  <blogs>
+  </blogs>
+  
+  <!--
+     - Each Eclipse project needs to have a plan both for its internal purposes
+     - (to guide development and resource allocation) and for the larger Eclipse
+     - community and ecosystem to understand what will be delivered and when
+     - it will be delivered.
+    -->
+  <project-plan url="" />
+
+  <!--
+     - Each Eclipse project creates (optional) nightly builds and milestone builds,
+     - but the important builds of a project are the releases. This section of the
+     - status file records the completed (past) and scheduled (future) releases of
+     - the project. 
+     - The status, name, and date are required attributes. The download is optional
+     - and only valid for completed releases; the plan is optional and valid for
+     - all releases.  The three valid types of releases are, in order of ascending 
+     - uncertainity: "completed", "scheduled", and "tentative".  Dates can be
+     - specified as particular day DD/MM/YYYY (e.g., 22/03/2005) or a particular
+     - month MM/YYYY (e.g., 10/2005), or a quarter NQYYYY (e.g., 3Q2005). Obviously
+     - completed releases should include the exact day the release was completed.
+     -
+     - In the following example, we have three completed, two scheduled, and one 
+     - tentative release.
+    -->
+  <releases>
+  </releases>
+</project>
\ No newline at end of file
diff --git a/project-info/project-page-paragraph.html b/project-info/project-page-paragraph.html
new file mode 100755
index 0000000..184c8df
--- /dev/null
+++ b/project-info/project-page-paragraph.html
@@ -0,0 +1 @@
+The purpose of this project is to improve the usability of the eclipse.org site, improving productivity and reducing duplication of effort across the eclipse user community.
\ No newline at end of file
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..edf76c9
--- /dev/null
+++ b/style.css
@@ -0,0 +1,190 @@
+@CHARSET "UTF-8";
+#novaContent {
+	background: url("images/backgroundMain.png") no-repeat;
+	padding-top: 210px;
+}
+
+#midcolumn {
+	width: 640px;
+	padding: 0 10px 10px 10px;
+}
+
+#rightcolumn {
+	width: 260px;
+}
+
+
+h3 {
+	clear: both;
+}
+
+h7 {
+	font-weight: bold;
+	padding: 5px;
+}
+
+a strong {
+	text-decoration: underline;
+}
+
+
+#novaContent {
+	background: url("images/backgroundMain.png") no-repeat white;
+	padding-top: 170px;
+}
+
+#introText p.left {
+	width: 48%;
+	float: left;
+}
+
+#introText p.right {
+	width: 48%;
+	float: right;
+}
+
+#feature_1 {
+	float: left;
+	width: 30%;
+	margin-right: 3%;
+}
+
+#feature_2 {
+	float: left;
+	width: 30%;
+	margin-right: 3%
+}
+
+#feature_3 {
+	float: left;
+	width: 30%;
+}
+
+#feature_4 {
+	clear: both;
+	float: left;
+	width: 63%;
+	margin-right: 3%;	
+}
+
+#feature_more {
+	float: left;
+	width: 30%;
+}
+	
+#bigbuttons {
+	position: relative;
+	left: 420px;
+	top: -170px;
+}
+#bigbuttons h3{
+	visibility: hidden;
+}
+
+#bigbuttons a {
+}
+
+#bigbuttons ul li {
+   display:block;
+   list-style-type:none;
+   background-color: red;
+   padding: 0;
+   margin: 0;
+}
+
+#bigbuttons a:hover {
+	text-decoration: none;
+}
+
+#bigbuttons a {
+   display: block;
+   height:77px; width:250px;
+   padding: 0;
+   margin: 20px;
+   text-indent: -9000px;
+   position: absolute;
+}
+
+#buttonDownload {
+   background:transparent url("images/buttonDownload.png") no-repeat 0 0;
+   top: 0px;
+   left: 0px;
+}
+
+#buttonDownload:hover {
+   background:transparent url("images/buttonDownload_sel.png") no-repeat 0 0;
+}
+
+   
+#buttonDocumentation {
+   background:transparent url("images/buttonDocumentation.png") no-repeat 0 0;
+   top: 87px;
+   left: 0px;
+}
+
+#buttonDocumentation:hover {
+   background:transparent url("images/buttonDocumentation_sel.png") no-repeat 0 0;
+}
+
+#buttonSupport {
+   background:transparent url("images/buttonSupport.png") no-repeat 0 0;
+   top: 0px;
+   left: 280px;
+}
+
+#buttonSupport:hover {
+   background:transparent url("images/buttonSupport_sel.png") no-repeat 0 0;
+}
+
+#buttonInvolved {
+   background:transparent url("images/buttonInvolved.png") no-repeat 0 0;
+   top: 87px;
+   left: 280px;
+}
+
+#buttonInvolved:hover {
+   background:transparent url("images/buttonInvolved_sel.png") no-repeat 0 0;
+}
+
+#bigbuttons a * {
+	visibility: hidden;
+}
+
+#headlines {
+}
+
+#headlines ul li {
+	margin: 0 0;
+	list-style-type: none;
+	list-style-image: none;
+}
+
+	
+#headlines div.title {
+	display: inline;
+	margin-right: 0.5em;
+}
+
+#headlines div.meta {
+	display: inline;
+	color: #444444;
+	font-size: smaller;  
+}
+
+#headlines div.item {
+	display: block;
+	}
+	
+#screencast {
+	margin-bottom: 10px;
+}
+
+#newAndNoteworthy a {
+   display: block;
+   width:218px; 
+   height:51px;
+   padding: 0;
+   text-indent: -9000px;
+   background:transparent url("images/bannerNewAndNoteworthy08M4.png") no-repeat 0 0;
+   margin-top: 10px;
+}
\ No newline at end of file
