diff --git a/.project b/.project
new file mode 100755
index 0000000..fba16a1
--- /dev/null
+++ b/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>m2e-wtp</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/_projectCommon.php b/_projectCommon.php
new file mode 100755
index 0000000..022c20d
--- /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 100755
index 0000000..df9b528
--- /dev/null
+++ b/download.php
@@ -0,0 +1,33 @@
+<?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";
+
+	$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 100755
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 100755
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 100755
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 100755
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 100755
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 100755
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 100755
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 100755
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 100755
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 100755
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 100755
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..c7417a1
--- /dev/null
+++ b/index.php
@@ -0,0 +1,29 @@
+<?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());
+	
+	$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/pages/_index.html b/pages/_index.html
new file mode 100755
index 0000000..7ec12ff
--- /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/technology.m2e.m2e-wtp">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.m2e.m2e-wtp">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/style.css b/style.css
new file mode 100755
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
