diff --git a/.project b/.project
new file mode 100644
index 0000000..53a86a4
--- /dev/null
+++ b/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>mpc</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..742eb97
--- /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/mpc">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=technology.epp.mpc">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
