diff --git a/_projectCommon.php b/_projectCommon.php
old mode 100755
new mode 100644
index d8c181f..30dc125
--- a/_projectCommon.php
+++ b/_projectCommon.php
@@ -1,57 +1,53 @@
 <?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
+/**
+ * Copyright (c) 2014-2017, 2018 Eclipse Foundation.
+ *
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
  *
  * Contributors:
- *    
- *******************************************************************************/
+ *   Christopher Guindon (Eclipse Foundation) - Initial implementation
+ *   Eric Poirier (Eclipse Foundation)
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
 
-	# Set the theme for your project's web pages.
-	# See http://eclipse.org/phoenix/
-	$theme = "Nova";
-	
+require_once ($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");
 
-	# 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("Skalli", 	"/skalli");
-	$Nav->addCustomNav("Download", "/skalli/download.php", "_self", 3);
-	$Nav->addCustomNav("Documentation", "/skalli/documentation.php", "_self", 3);
-	$Nav->addCustomNav("Support", "/skalli/support.php", "_self", 3);
-	$Nav->addCustomNav("Getting Involved", "/skalli/getting-involved.php", "_self", 3);
+$Nav  = new Nav();
 
-	# Define keywords, author and title here, or in each PHP page specifically
-	$pageKeywords	= "eclipse, skalli";
-	$pageAuthor		= "Simon Kaufmann, SAP AG";
-	$pageTitle 		= "Skalli";
+// Set the theme for your project's web pages.
+// See the Committer Tools "Phoenix" secion in the How Do I? for list of themes
+// https://dev.eclipse.org/committers/
+$theme = NULL;
+
+// Define your project-wide Nav bars here.
+// Format is Link text, link URL (can be http://www.someothersite.com/), target
+// (_self, _blank).
+$Nav->addNavSeparator("Skalli", 	"/skalli");
+$Nav->addCustomNav("Download", "/skalli/download.php", "_self", 3);
+$Nav->addCustomNav("Documentation", "/skalli/documentation.php", "_self", 3);
+$Nav->addCustomNav("Support", "/skalli/support.php", "_self", 3);
+$Nav->addCustomNav("Getting Involved", "/skalli/getting-involved.php", "_self", 3);
+
+# Define keywords, author and title here, or in each PHP page specifically
+$pageKeywords	= "eclipse, skalli";
+$pageAuthor		= "Simon Kaufmann, SAP AG";
+$pageTitle 		= "Skalli";
 
 
-	# 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="/skalli/styles/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
+# 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="/skalli/styles/style.css"/>');
+
+# To enable occasional Eclipse Foundation Promotion banners on your pages (EclipseCon, etc)
+$App->Promotion = TRUE;
diff --git a/content/en_index.php b/content/en_index.php
new file mode 100644
index 0000000..f794781
--- /dev/null
+++ b/content/en_index.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Copyright (c) 2014, 2015, 2016, 2018 Eclipse Foundation.
+ *
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ *
+ * Contributors:
+ *   Christopher Guindon (Eclipse Foundation) - Initial implementation
+ *   Eric Poirier (Eclipse Foundation)
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+?>
+
+<!-- Main content area -->
+<div id="midcolumn">
+<h3>Eclipse Skalli</h3>
+
+<p class="left">One of the major goals of this project is to make a new generation 
+project management tool accessible and usable by the Eclipse community and other 
+open source projects.
+Thereby Skalli forms the central entry point to all projects and creates transparency 
+over the existing projects. It leverages search technologies and social network mechanisms 
+in order to structure and find them.
+This project however does not aim at replacing existing tools like wiki, bugtracker 
+and source code management system. It merely links to them and integrates their data 
+and services as far as needed in order to let users - and through a REST API also 
+other tools - gain an overview on each project's state and locate its resources.
+</p>
+
+<p class="right"> This project was just provisioned.  You can see the proposal 
+<a href="/proposals/technology.skalli/">here</a>
+</p>
+</div>
+<!-- ./end  #midcolumn -->
+
diff --git a/documentation.php b/documentation.php
index 3e1c41e..6658533 100644
--- a/documentation.php
+++ b/documentation.php
@@ -35,8 +35,9 @@
 
 	
 	<?
-	$html = ob_get_clean();
+	$html = ob_get_contents();
+	ob_end_clean();
 
 	# Generate the web page
-	$App->generatePage('Nova', $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
-?>
+	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+	?>
diff --git a/download.php b/download.php
index 828d174..a1927f4 100644
--- a/download.php
+++ b/download.php
@@ -37,8 +37,9 @@
 </div>
 
 	<?
-	$html = ob_get_clean();
+	$html = ob_get_contents();
+	ob_end_clean();
 
 	# Generate the web page
-	$App->generatePage('Nova', $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
-?>
\ No newline at end of file
+	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+	?>
diff --git a/getting-involved.php b/getting-involved.php
index 3873059..015984c 100644
--- a/getting-involved.php
+++ b/getting-involved.php
@@ -37,8 +37,9 @@
 
 
 	<?
-	$html = ob_get_clean();
+	$html = ob_get_contents();
+	ob_end_clean();
 
 	# Generate the web page
-	$App->generatePage('Nova', $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
-?>
+	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+	?>
diff --git a/images/_backgroundMainEmpty.png b/images/_backgroundMainEmpty.png
deleted file mode 100644
index 9487b21..0000000
--- a/images/_backgroundMainEmpty.png
+++ /dev/null
Binary files differ
diff --git a/images/backgroundMain.png b/images/backgroundMain.png
deleted file mode 100644
index 3512853..0000000
--- a/images/backgroundMain.png
+++ /dev/null
Binary files differ
diff --git a/images/buttonDocumentation.png b/images/buttonDocumentation.png
deleted file mode 100644
index bbfdde0..0000000
--- a/images/buttonDocumentation.png
+++ /dev/null
Binary files differ
diff --git a/images/buttonDocumentation_sel.png b/images/buttonDocumentation_sel.png
deleted file mode 100644
index 8affb93..0000000
--- a/images/buttonDocumentation_sel.png
+++ /dev/null
Binary files differ
diff --git a/images/buttonDownload.png b/images/buttonDownload.png
deleted file mode 100644
index e620092..0000000
--- a/images/buttonDownload.png
+++ /dev/null
Binary files differ
diff --git a/images/buttonDownload_new.png b/images/buttonDownload_new.png
deleted file mode 100644
index e620092..0000000
--- a/images/buttonDownload_new.png
+++ /dev/null
Binary files differ
diff --git a/images/buttonDownload_sel.png b/images/buttonDownload_sel.png
deleted file mode 100644
index d3a0330..0000000
--- a/images/buttonDownload_sel.png
+++ /dev/null
Binary files differ
diff --git a/images/buttonInvolved.png b/images/buttonInvolved.png
deleted file mode 100644
index b3e9a82..0000000
--- a/images/buttonInvolved.png
+++ /dev/null
Binary files differ
diff --git a/images/buttonInvolved_sel.png b/images/buttonInvolved_sel.png
deleted file mode 100644
index 346a452..0000000
--- a/images/buttonInvolved_sel.png
+++ /dev/null
Binary files differ
diff --git a/images/buttonSupport.png b/images/buttonSupport.png
deleted file mode 100644
index bd36086..0000000
--- a/images/buttonSupport.png
+++ /dev/null
Binary files differ
diff --git a/images/buttonSupport_sel.png b/images/buttonSupport_sel.png
deleted file mode 100644
index a535fe8..0000000
--- a/images/buttonSupport_sel.png
+++ /dev/null
Binary files differ
diff --git a/images/logo_large.png b/images/logo_large.png
new file mode 100644
index 0000000..9f03245
--- /dev/null
+++ b/images/logo_large.png
Binary files differ
diff --git a/index.php b/index.php
old mode 100755
new mode 100644
index e8ef84f..5ed837f
--- a/index.php
+++ b/index.php
@@ -1,26 +1,128 @@
 <?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
+/**
+ * Copyright (c) 2014-2017, 2018 Eclipse Foundation.
  *
- * Contributors: Simon Kaufmann
- *    
- *******************************************************************************/
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ *
+ * Contributors:
+ * Christopher Guindon (Eclipse Foundation) - Initial implementation
+ * Eric Poirier (Eclipse Foundation)
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
 
-	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
-	
-	// 	# Paste your HTML content between the EOHTML markers!
-	$html = file_get_contents('pages/_index.html');
-	$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="/skalli/styles/style-index.css"/>');
+require_once ($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
 
-	# Generate the web page
-	$App->generatePage($theme, $Menu, null, $pageAuthor, $pageKeywords, $pageTitle, $html);
+$App = new App();
+$Theme = $App->getThemeClass();
 
-?>
\ No newline at end of file
+// Shared variables/configs for all pages of your website.
+require_once ('_projectCommon.php');
+
+// Begin: page-specific settings. Change these.
+$pageTitle = "Eclipse Skalli";
+$Theme->setPageAuthor('Simon Kaufmann');
+$Theme->setPageKeywords('Add maximal 20 keywords and seperate them from each other by a comma en a space.');
+$Theme->setPageTitle($pageTitle);
+
+if (isset($Nav)) {
+  $Theme->setNav($Nav);
+}
+
+// Initialize custom solstice $variables.
+$variables = array();
+
+// Add classes to <body>. (String)
+$variables['body_classes'] = '';
+
+// Insert custom HTML in the breadcrumb region. (String)
+$variables['breadcrumbs_html'] = "";
+
+// Hide the breadcrumbs. (Bool)
+$variables['hide_breadcrumbs'] = FALSE;
+
+// Insert HTML before the left nav. (String)
+$variables['leftnav_html'] = '';
+
+// Update the main container class (String)
+$variables['main_container_classes'] = 'container';
+
+// Insert HTML after opening the main content container, before the left
+// sidebar. (String)
+$variables['main_container_html'] = '';
+
+// Insert header navigation for project websites.
+// Bug 436108 - https://bugs.eclipse.org/bugs/show_bug.cgi?id=436108
+$links = array();
+$links[] = array(
+  'icon' => 'fa-download', // Required
+  'url' => '/skalli/download.php', // Required
+  'title' => 'Download', // Required
+  // 'target' => '_blank', // Optional
+  'text' => 'Eclipse Distribution, Update Site, Dropins' // Optional
+);
+
+$links[] = array(
+  'icon' => 'fa-users', // Required
+  'url' => '/skalli/getting-involved.php', // Required
+  'title' => 'Geting Involved', // Required
+  // 'target' => '_blank', // Optional
+  'text' => 'CVS, Workspace Setup, Wiki, Committers' // Optional
+);
+
+$links[] = array(
+  'icon' => 'fa-book', // Required
+  'url' => '/skalli/documentation.php', // Required
+  'title' => 'Documentation', // Required
+  // 'target' => '_blank', // Optional
+  'text' => 'Tutorials, Examples, Videos, Online Reference' // Optional
+);
+
+$links[] = array(
+  'icon' => 'fa-support', // Required
+  'url' => '/skalli/support.php', // Required
+  'title' => 'Support', // Required
+  // 'target' => '_blank', // Optional
+  'text' => 'Bug Tracker, Newsgroup Professional Support' // Optional
+);
+
+$variables['header_nav'] = array(
+  'links' => $links, // Required
+  'logo' => array( // Required
+    'src' => '/skalli/images/logo_large.png', // Required
+    'alt' => 'Eclipse Skalli', // Optional
+    'url' => 'http://www.eclipse.org/skalli' // Optional
+    // 'target' => '_blank' // Optional
+  )
+);
+
+// CFA Link - Big orange button in header
+$variables['btn_cfa'] = array(
+  'hide' => FALSE, // Optional - Hide the CFA button.
+  'html' => '', // Optional - Replace CFA html and insert custom HTML.
+  'class' => 'btn btn-huge btn-warning', // Optional - Replace class on CFA link.
+  'href' => '//www.eclipse.org/downloads/', // Optional - Replace href on CFA link.
+  'text' => '<i class="fa fa-download"></i> Download' // Optional - Replace text of CFA link.
+);
+
+// Set Solstice theme variables. (Array)
+$App->setThemeVariables($variables);
+
+// Place your html content in a file called content/en_pagename.php
+ob_start();
+include ("content/en_" . $App->getScriptName());
+$html = ob_get_clean();
+$Theme->setHtml($html);
+
+// Insert extra html before closing </head> tag.
+// $App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css"
+// href="style.css" media="screen" />');
+
+// Insert script/html before closing </body> tag.
+// $App->AddExtraJSFooter('<script type="text/javascript"
+// src="script.min.js"></script>');
+
+// Generate the web page
+$Theme->generatePage();
diff --git a/pages/_index.html b/pages/_index.html
deleted file mode 100644
index c60e153..0000000
--- a/pages/_index.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<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="documentation.php"
-		title="Documentation">Tutorials, Examples, Videos, Reference Documentation</a></li>
-	<li><a id="buttonSupport" href="support.php" title="Download">Bug
-	Tracker, Newsgroup, Professional Support</a></li>
-	<li><a id="buttonInvolved" href="getting-involved.php" title="Getting Involved">CVS,
-	Workspace Setup, Wiki, Committers</a></li>
-</ul>
-</div>
-
-<div id="midcolumn">
-<h3>Skalli</h3>
-<div id="introText">
-
-<p class="left">One of the major goals of this project is to make a new generation 
-project management tool accessible and usable by the Eclipse community and other 
-open source projects.
-Thereby Skalli forms the central entry point to all projects and creates transparency 
-over the existing projects. It leverages search technologies and social network mechanisms 
-in order to structure and find them.
-This project however does not aim at replacing existing tools like wiki, bugtracker 
-and source code management system. It merely links to them and integrates their data 
-and services as far as needed in order to let users - and through a REST API also 
-other tools - gain an overview on each project's state and locate its resources.
-</p>
-
-<p class="right"> This project was just provisioned.  You can see the proposal 
-<a href="/proposals/technology.skalli/">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>More...</h4>
-<p>...to come soon.</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.skalli">About This Project</a>
-</div>
-  -->
-
-</div>
-
-<div id="rightcolumn">
-
- <div class="sideitem">
-   <h6>Incubation</h6>
-   <div align="center"><a href="/projects/what-is-incubation.php"><img
-        align="center" src="/images/egg-incubation.png"
-        border="0" alt="Incubation" /></a></div>
- </div>
-
-
-<!-- 
-<div id="headlines">
-<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
deleted file mode 100755
index e69de29..0000000
--- a/project-info/executive-summary.html
+++ /dev/null
diff --git a/project-info/home-page-one-liner.html b/project-info/home-page-one-liner.html
deleted file mode 100755
index e9b2050..0000000
--- a/project-info/home-page-one-liner.html
+++ /dev/null
@@ -1 +0,0 @@
-Phoenix
\ No newline at end of file
diff --git a/project-info/maillist b/project-info/maillist
deleted file mode 100755
index c191d00..0000000
--- a/project-info/maillist
+++ /dev/null
@@ -1 +0,0 @@
-::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
deleted file mode 100755
index 4cb94f6..0000000
--- a/project-info/newsgroup
+++ /dev/null
@@ -1 +0,0 @@
-::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
deleted file mode 100755
index c3bf39f..0000000
--- a/project-info/project-info.xml
+++ /dev/null
@@ -1,198 +0,0 @@
-<?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
deleted file mode 100755
index 184c8df..0000000
--- a/project-info/project-page-paragraph.html
+++ /dev/null
@@ -1 +0,0 @@
-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/styles/style-index.css b/styles/style-index.css
deleted file mode 100644
index 260b686..0000000
--- a/styles/style-index.css
+++ /dev/null
@@ -1,10 +0,0 @@
-@CHARSET "UTF-8";
-#midcolumn {
-	width: 640px;
-	padding: 0 10px 10px 10px;
-}
-
-#rightcolumn {
-	width: 260px;
-}
-
diff --git a/styles/style.css b/styles/style.css
deleted file mode 100644
index 927cd43..0000000
--- a/styles/style.css
+++ /dev/null
@@ -1,180 +0,0 @@
-@CHARSET "UTF-8";
-#novaContent {
-	background: url("/skalli/images/backgroundMain.png") no-repeat;
-	padding-top: 210px;
-}
-
-h3 {
-	clear: both;
-}
-
-h7 {
-	font-weight: bold;
-	padding: 5px;
-}
-
-a strong {
-	text-decoration: underline;
-}
-
-
-#novaContent {
-	background: url("/skalli/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("/skalli/images/buttonDownload.png") no-repeat 0 0;
-   top: 0px;
-   left: 0px;
-}
-
-#buttonDownload:hover {
-   background:transparent url("/skalli/images/buttonDownload_sel.png") no-repeat 0 0;
-}
-
-   
-#buttonDocumentation {
-   background:transparent url("/skalli/images/buttonDocumentation.png") no-repeat 0 0;
-   top: 87px;
-   left: 0px;
-}
-
-#buttonDocumentation:hover {
-   background:transparent url("/skalli/images/buttonDocumentation_sel.png") no-repeat 0 0;
-}
-
-#buttonSupport {
-   background:transparent url("/skalli/images/buttonSupport.png") no-repeat 0 0;
-   top: 0px;
-   left: 280px;
-}
-
-#buttonSupport:hover {
-   background:transparent url("/skalli/images/buttonSupport_sel.png") no-repeat 0 0;
-}
-
-#buttonInvolved {
-   background:transparent url("/skalli/images/buttonInvolved.png") no-repeat 0 0;
-   top: 87px;
-   left: 280px;
-}
-
-#buttonInvolved:hover {
-   background:transparent url("/skalli/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("/skalli/images/bannerNewAndNoteworthy08M4.png") no-repeat 0 0;
-   margin-top: 10px;
-}
\ No newline at end of file
diff --git a/support.php b/support.php
index bec86d6..473a61e 100644
--- a/support.php
+++ b/support.php
@@ -29,8 +29,9 @@
 
 	
 	<?
-	$html = ob_get_clean();
+	$html = ob_get_contents();
+	ob_end_clean();
 
 	# Generate the web page
-	$App->generatePage('Nova', $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
-?>
+	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+	?>
