diff --git a/_projectCommon.php b/_projectCommon.php
index e4bf0a3..1c09cf4 100755
--- a/_projectCommon.php
+++ b/_projectCommon.php
@@ -13,7 +13,7 @@
 
 	# Set the theme for your project's web pages.
 	# See http://eclipse.org/phoenix/
-	$theme = "Nova";
+	$theme = "solstice";
 	
 
 	# Define your project-wide Navigation here
@@ -56,4 +56,4 @@
 	
 	# If you have Google Analytics code, use it here
 	# $App->SetGoogleAnalyticsTrackingCode("YOUR_CODE");
-?>
\ No newline at end of file
+?>
diff --git a/developers.php b/developers.php
index b1eb3f2..857d8c3 100644
--- a/developers.php
+++ b/developers.php
@@ -22,7 +22,6 @@
 	include($App->getProjectCommon());
 	
 	$pageTitle 		= "Getting Involved";
-	$theme = "Nova";
 
 	$activityHtml = getCommitsActivityHtml('technology.jubula', 150, 150);
 	$html = file_get_contents('pages/developers.html').$activityHtml;
diff --git a/documentation.php b/documentation.php
index da149e1..02c45e1 100644
--- a/documentation.php
+++ b/documentation.php
@@ -19,7 +19,6 @@
 	include($App->getProjectCommon());
 	
 	$pageTitle 		= "Jubula Documentation";
-	$theme = "Nova";
 	
 	$html = file_get_contents('pages/documentation.html');
 	
diff --git a/download.php b/download.php
index fdc9426..11ca4a5 100755
--- a/download.php
+++ b/download.php
@@ -19,7 +19,6 @@
 	include($App->getProjectCommon());
 	
 	$pageTitle 		= "Jubula Download";
-	$theme = "Nova";
 	
 	$html = file_get_contents('pages/download.html');
 	
diff --git a/example/auts/adder/SimpleAdder.html b/example/auts/adder/SimpleAdder.html
new file mode 100644
index 0000000..de4639f
--- /dev/null
+++ b/example/auts/adder/SimpleAdder.html
@@ -0,0 +1,181 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    Copyright (c) 2015 BREDEX GmbH.
+    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
+ -->
+
+<html>
+  <head>
+    <title>
+      SimpleAdder
+    </title>
+    <script type="text/javascript">
+<!--
+      // sums 2 given values
+      function calc () {
+        var x = window.document.simpleadder.value1.value;
+        var y = window.document.simpleadder.value2.value;
+        var xInt = parseInt(x);
+        var yInt = parseInt(y);
+        var result = xInt + yInt;
+        
+        if (isNaN(result) || !isNumber(x) || !isNumber(y)) {
+          window.document.simpleadder.result.value = "#error";
+        } else {
+          if (xInt == 17 && yInt == 4) {
+            window.document.simpleadder.result.value = "jackpot";
+          } else {
+            window.document.simpleadder.result.value = result;
+          }
+        }
+      }
+
+      // create ResetBtn
+      function createResetBtn(tdid) {
+        var tagid = document.getElementById(tdid);
+        if (!document.getElementById('reset')) {     
+            var resetBtn = document.createElement("input");
+            resetBtn.setAttribute("type", "reset");
+            resetBtn.className = "button"; 
+            resetBtn.id = "reset";
+            resetBtn.setAttribute("value", "c");
+            resetBtn.onclick = performDelete;
+            tagid.appendChild(resetBtn);
+        }
+        return true;
+      }
+
+      // deletes the ResetBtn
+      function delResetBtn() {
+        var tagid = document.getElementById('resetTag');
+        var resetbtn = document.getElementById('reset');
+
+        window.document.simpleadder.value1.value = "";
+        window.document.simpleadder.value2.value = "";
+        window.document.simpleadder.result.value = "";
+        
+        tagid.removeChild(resetbtn);
+
+        return true;
+      } 
+
+      // neccessary function to perform delResetBtn in IE
+      function performDelete() {
+        delResetBtn();return true;
+      }
+      
+      // only digits are allowed and a leading "-" 
+      function isNumber (value) {
+        var chars = "0123456789";
+        for (var i = 0; i < value.length; i++)
+          if (chars.indexOf(value.charAt(i)) < 0) {
+            if (!(value.charAt(i) == "-" && i == 0)) {
+              return false;
+            }
+          }
+        return true;
+      }
+    -->
+    </script>
+    <style type="text/css">
+.button {  width:60px; text-align:center;
+               font-family:System,sans-serif;
+               font-size:100%; }
+    .field { width:70px; text-align:right;
+               font-family:System,sans-serif;
+               font-size:100%; }
+    .text { text-align:right;
+               font-family:System,sans-serif;
+               font-size:100%; }
+    .adder { background-color:#AAAAAA;}
+    body { background-color:#CCCCCC;}
+    A:link {
+    color: #9999CC;
+    text-decoration: none; 
+    }
+    A:visited { 
+    color: #9999CC;
+    text-decoration: none;
+    }
+    A:hover {
+    text-decoration:none;
+    color: #CC0000; 
+    }
+    </style>
+  </head>
+
+  <body>
+    <table width="100%" style="height: 100%;" align="center">
+      <tr>
+        <td align="center">
+          <form name="simpleadder" action="" onsubmit=
+          "calc();return false;">
+            <h1>
+              Simple Adder
+            </h1>
+            <table class="adder" cellpadding="5">
+              <tr>
+                <td>
+                  &nbsp;
+                </td>
+                <td>
+                  <input type="text" name="value1" id="value1"
+                  align="right" class="field" onkeypress=
+                  "return createResetBtn('resetTag')">
+                </td>
+                <td>
+                  value1
+                </td>
+              </tr>
+              <tr>
+                <td class="text">
+                  +
+                </td>
+                <td>
+                  <input type="text" name="value2" id="value2"
+                  align="right" class="field" onkeypress=
+                  "return createResetBtn('resetTag')">
+                </td>
+                <td>
+                  value2
+                </td>
+              </tr>
+              <tr>
+                <td colspan="3">
+                  <hr>
+                </td>
+              </tr>
+              <tr>
+                <td width="30">
+                  <input type="submit" class="button" id="submit"
+                  value="=" onclick="return createResetBtn('resetTag')">
+                </td>
+                <td>
+                  <input type="text" name="result" id="result"
+                  align="right" class="field" readonly>
+                </td>
+                <td>
+                  result
+                </td>
+              </tr>
+              <tr>
+                <td width="30" id="resetTag"></td>
+                <td>
+                  &nbsp;
+                </td>
+                <td>
+                  &nbsp;
+                </td>
+              </tr>
+            </table>
+          </form><small><a href="http://www.eclipse.org/jubula">Visit
+          Jubula</a></small>
+        </td>
+      </tr>
+    </table>
+  </body>
+</html>
diff --git a/images/testresults/testresult.png b/images/testresults/testresult.png
index cb9c1f3..25175ff 100644
--- a/images/testresults/testresult.png
+++ b/images/testresults/testresult.png
Binary files differ
diff --git a/index.php b/index.php
index 21b1d29..f3500ce 100755
--- a/index.php
+++ b/index.php
@@ -22,7 +22,7 @@
 	
 	# Define these here, or in _projectCommon.php for site-wide values
 	$pageKeywords	= "eclipse, project";
-	$pageAuthor		= "Your name";
+	$pageAuthor		= "Eclipse Jubula";
 	$pageTitle 		= "Eclipse Jubula Project";
 	
 	
diff --git a/new.php b/new.php
index 2ad1149..5bf0662 100644
--- a/new.php
+++ b/new.php
@@ -19,7 +19,6 @@
 	include($App->getProjectCommon());
 	
 	$pageTitle 		= "New & Noteworthy";
-	$theme = "Nova";
 	
 	$html = file_get_contents('new/_index.html');
 	
diff --git a/new/Indigo/Main/new_indigo.html b/new/Indigo/Main/new_indigo.html
index 8205e6c..f5068af 100644
--- a/new/Indigo/Main/new_indigo.html
+++ b/new/Indigo/Main/new_indigo.html
@@ -46,11 +46,14 @@
 <h2>
 Were you looking for:</h2>
 <ul>
-<li><a href="../../Luna/Main/new_luna.php">What's New for the Luna Release?</a>
-<li><a href="../../Kepler/Main/new_kepler.php">What's New for the Kepler Release?</a>
-<li><a href="../../Juno/Main/new_juno.php">What's New for the Juno Release?</a>
+<li><a href="../../Oxygen/Main/new_oxygen.php">What's New for the Oxygen Release?</a></li>
+<li><a href="../../Neon/Main/new_neon.php">What's New for the Neon Release?</a></li>
+<li><a href="../../Mars/Main/new_mars.php">What's New for the Mars Release?</a></li>
+<li><a href="../../Luna/Main/new_luna.php">What's New for the Luna Release?</a></li>
+<li><a href="../../Kepler/Main/new_kepler.php">What's New for the Kepler Release?</a></li>
+<li><a href="../../Juno/Main/new_juno.php">What's New for the Juno Release?</a></li>
 <li><a href="../SR1/new_indigosr1.php">What's New for the Indigo SR1 Release?</a></li>
-<li><a href="../SR2/new_indigosr2.php">What's New for the Indigo SR2 Release?</a>
+<li><a href="../SR2/new_indigosr2.php">What's New for the Indigo SR2 Release?</a></li>
 </ul>
 </div>
 <div id="left">
diff --git a/new/Indigo/Main/new_indigo.php b/new/Indigo/Main/new_indigo.php
index 1e1354f..0f21680 100644
--- a/new/Indigo/Main/new_indigo.php
+++ b/new/Indigo/Main/new_indigo.php
@@ -19,7 +19,6 @@
 	include($App->getProjectCommon());
 	
 	$pageTitle 		= "New: Indigo";
-	$theme = "Nova";
 	
 	$html = file_get_contents('new_indigo.html');
 	
diff --git a/new/Indigo/SR1/new_indigosr1.html b/new/Indigo/SR1/new_indigosr1.html
index 7dafc31..bd9365d 100644
--- a/new/Indigo/SR1/new_indigosr1.html
+++ b/new/Indigo/SR1/new_indigosr1.html
@@ -44,11 +44,14 @@
 <div id="right">
 <h2>Were you looking for:</h2>
 <ul>
-<li><a href="../../Luna/Main/new_luna.php">What's New for the Luna Release?</a>
-<li><a href="../../Kepler/Main/new_kepler.php">What's New for the Kepler Release?</a>
-<li><a href="../../Juno/Main/new_juno.php">What's New for the Juno Release?</a>
+<li><a href="../../Oxygen/Main/new_oxygen.php">What's New for the Oxygen Release?</a></li>
+<li><a href="../../Neon/Main/new_neon.php">What's New for the Neon Release?</a></li>
+<li><a href="../../Mars/Main/new_mars.php">What's New for the Mars Release?</a></li>
+<li><a href="../../Luna/Main/new_luna.php">What's New for the Luna Release?</a></li>
+<li><a href="../../Kepler/Main/new_kepler.php">What's New for the Kepler Release?</a></li>
+<li><a href="../../Juno/Main/new_juno.php">What's New for the Juno Release?</a></li>
 <li><a href="../Main/new_indigo.php">What's New for the Indigo Release?</a></li>
-<li><a href="../SR2/new_indigosr2.php">What's New for the Indigo SR2 Release?</a>
+<li><a href="../SR2/new_indigosr2.php">What's New for the Indigo SR2 Release?</a></li>
 </ul>
 </div> 
 <div id="left">
diff --git a/new/Indigo/SR1/new_indigosr1.php b/new/Indigo/SR1/new_indigosr1.php
index a4b8e3a..a3e55d2 100644
--- a/new/Indigo/SR1/new_indigosr1.php
+++ b/new/Indigo/SR1/new_indigosr1.php
@@ -19,7 +19,6 @@
 	include($App->getProjectCommon());
 	
 	$pageTitle 		= "New: Indigo SR1";
-	$theme = "Nova";
 	
 	$html = file_get_contents('new_indigosr1.html');
 	
diff --git a/new/Indigo/SR2/new_indigosr2.html b/new/Indigo/SR2/new_indigosr2.html
index a10703a..80987d0 100644
--- a/new/Indigo/SR2/new_indigosr2.html
+++ b/new/Indigo/SR2/new_indigosr2.html
@@ -44,11 +44,14 @@
 <div id="right">
 <h2>Were you looking for:</h2>
 <ul>
-<li><a href="../../Luna/Main/new_luna.php">What's New for the Luna Release?</a>
-<li><a href="../../Kepler/Main/new_kepler.php">What's New for the Kepler Release?</a>
-<li><a href="../../Juno/Main/new_juno.php">What's New for the Juno Release?</a>
+<li><a href="../../Oxygen/Main/new_oxygen.php">What's New for the Oxygen Release?</a></li>
+<li><a href="../../Neon/Main/new_neon.php">What's New for the Neon Release?</a></li>
+<li><a href="../../Mars/Main/new_mars.php">What's New for the Mars Release?</a></li>
+<li><a href="../../Luna/Main/new_luna.php">What's New for the Luna Release?</a></li>
+<li><a href="../../Kepler/Main/new_kepler.php">What's New for the Kepler Release?</a></li>
+<li><a href="../../Juno/Main/new_juno.php">What's New for the Juno Release?</a></li>
 <li><a href="../Main/new_indigo.php">What's New for the Indigo Release?</a></li>
-<li><a href="../SR1/new_indigosr1.php">What's New for the Indigo SR1 Release?</a>
+<li><a href="../SR1/new_indigosr1.php">What's New for the Indigo SR1 Release?</a></li>
 </ul>
 
 </div>
diff --git a/new/Indigo/SR2/new_indigosr2.php b/new/Indigo/SR2/new_indigosr2.php
index f25a478..50a56ec 100644
--- a/new/Indigo/SR2/new_indigosr2.php
+++ b/new/Indigo/SR2/new_indigosr2.php
@@ -19,7 +19,6 @@
 	include($App->getProjectCommon());
 	
 	$pageTitle 		= "New: Indigo SR2";
-	$theme = "Nova";
 	
 	$html = file_get_contents('new_indigosr2.html');
 	
diff --git a/new/Juno/Main/new_juno.html b/new/Juno/Main/new_juno.html
index 8842130..97b3840 100644
--- a/new/Juno/Main/new_juno.html
+++ b/new/Juno/Main/new_juno.html
@@ -45,12 +45,15 @@
 <h2>
 Were you looking for:</h2>
 <ul>
-<li><a href="../../Luna/Main/new_luna.php">What's New for the Luna Release?</a>
-<li><a href="../../Kepler/Main/new_kepler.php">What's New for the Kepler Release?</a>
+<li><a href="../../Oxygen/Main/new_oxygen.php">What's New for the Oxygen Release?</a></li>
+<li><a href="../../Neon/Main/new_neon.php">What's New for the Neon Release?</a></li>
+<li><a href="../../Mars/Main/new_mars.php">What's New for the Mars Release?</a></li>
+<li><a href="../../Luna/Main/new_luna.php">What's New for the Luna Release?</a></li>
+<li><a href="../../Kepler/Main/new_kepler.php">What's New for the Kepler Release?</a></li>
 <li><a href="../../Juno/SR1/new_junosr1.php">What's New for the Juno SR1 Release?</a></li>
 <li><a href="../../Indigo/Main/new_indigo.php">What's New for the Indigo Release?</a></li>
 <li><a href="../../Indigo/SR1/new_indigosr1.php">What's New for the Indigo SR1 Release?</a></li>
-<li><a href="../../Indigo/SR2/new_indigosr2.php">What's New for the Indigo SR2 Release?</a>
+<li><a href="../../Indigo/SR2/new_indigosr2.php">What's New for the Indigo SR2 Release?</a></li>
 </ul>
 </div>
 <div id="left">
diff --git a/new/Juno/Main/new_juno.php b/new/Juno/Main/new_juno.php
index 60c1828..4aad348 100644
--- a/new/Juno/Main/new_juno.php
+++ b/new/Juno/Main/new_juno.php
@@ -19,7 +19,6 @@
 	include($App->getProjectCommon());
 	
 	$pageTitle 		= "New : Juno";
-	$theme = "Nova";
 	
 	$html = file_get_contents('new_juno.html');
 	
diff --git a/new/Juno/SR1/new_junosr1.php b/new/Juno/SR1/new_junosr1.php
index f8bfd9a..36dc174 100644
--- a/new/Juno/SR1/new_junosr1.php
+++ b/new/Juno/SR1/new_junosr1.php
@@ -19,7 +19,6 @@
 	include($App->getProjectCommon());
 	
 	$pageTitle 		= "New: Juno SR1";
-	$theme = "Nova";
 	
 	$html = file_get_contents('new_junosr1.html');
 	
diff --git a/new/Kepler/Main/new_kepler.html b/new/Kepler/Main/new_kepler.html
index 95375c3..7798e70 100644
--- a/new/Kepler/Main/new_kepler.html
+++ b/new/Kepler/Main/new_kepler.html
@@ -46,9 +46,12 @@
 <h2>
 Were you looking for:</h2>
 <ul>
+<li><a href="../../Oxygen/Main/new_oxygen.php">What's New for the Oxygen Release?</a></li>
+<li><a href="../../Neon/Main/new_neon.php">What's New for the Neon Release?</a></li>
+<li><a href="../../Mars/Main/new_mars.php">What's New for the Mars Release?</a></li>
+<li><a href="../../Luna/Main/new_luna.php">What's New for the Luna Release?</a></li>
+<li><a href="../../Juno/Main/new_juno.php">What's New for the Juno Release?</a></li>
 <li><a href="../../Indigo/Main/new_indigo.php">What's New for the Indigo Release?</a></li>
-<li><a href="../../Juno/Main/new_juno.php">What's New for the Juno Release?</a>
-<li><a href="../../Luna/Main/new_luna.php">What's New for the Luna Release?</a>
 </ul>
 </div>
 <div id="left">
diff --git a/new/Kepler/Main/new_kepler.php b/new/Kepler/Main/new_kepler.php
index 6cf3182..17219bb 100644
--- a/new/Kepler/Main/new_kepler.php
+++ b/new/Kepler/Main/new_kepler.php
@@ -19,7 +19,6 @@
 	include($App->getProjectCommon());
 	
 	$pageTitle 		= "New: Kepler";
-	$theme = "Nova";
 	
 	$html = file_get_contents('new_kepler.html');
 	
diff --git a/new/Luna/Main/new_luna.html b/new/Luna/Main/new_luna.html
index a2b546d..38f651c 100644
--- a/new/Luna/Main/new_luna.html
+++ b/new/Luna/Main/new_luna.html
@@ -45,7 +45,10 @@
 <h2>
 Were you looking for:</h2>
 <ul>
-<li><a href="../../Juno/Main/new_juno.php">What's New for the Juno Release?</a>
+<li><a href="../../Oxygen/Main/new_oxygen.php">What's New for the Oxygen Release?</a></li>
+<li><a href="../../Neon/Main/new_neon.php">What's New for the Neon Release?</a></li>
+<li><a href="../../Mars/Main/new_mars.php">What's New for the Mars Release?</a></li>
+<li><a href="../../Juno/Main/new_juno.php">What's New for the Juno Release?</a></li>
 <li><a href="../../Indigo/Main/new_indigo.php">What's New for the Indigo Release?</a></li>
 <li><a href="../../Kepler/Main/new_kepler.php">What's New for the Kepler Release?</a></li>
 </ul>
diff --git a/new/Luna/Main/new_luna.php b/new/Luna/Main/new_luna.php
index cacc70e..ca0c051 100644
--- a/new/Luna/Main/new_luna.php
+++ b/new/Luna/Main/new_luna.php
@@ -19,7 +19,6 @@
 	include($App->getProjectCommon());
 	
 	$pageTitle 		= "New: Luna";
-	$theme = "Nova";
 	
 	$html = file_get_contents('new_luna.html');
 	
diff --git a/new/Luna/images/ChangeInformation.png b/new/Luna/images/ChangeInformation.png
index 859a6a1..5b3f662 100644
--- a/new/Luna/images/ChangeInformation.png
+++ b/new/Luna/images/ChangeInformation.png
Binary files differ
diff --git a/new/Mars/Main/new_mars.html b/new/Mars/Main/new_mars.html
new file mode 100644
index 0000000..d42fbd1
--- /dev/null
+++ b/new/Mars/Main/new_mars.html
@@ -0,0 +1,139 @@
+<br></br>
+
+<html>
+<head>
+<style type="text/css" title="text/css" media="screen">
+td  {
+	border-top: 1px solid #D4D4DD;
+	text-align: left;
+	vertical-align: top;
+	font-weight: normal;
+	padding: 5pt;
+	width: 425px;
+}
+
+td.entry_cell {
+	font-weight: bold;
+	width: 30%
+}
+
+td.change {
+	font-style: italic;
+	color: red;
+}
+
+table {
+    border-top-style: none;
+ 	border-collapse: collapse;
+}
+
+h2 {
+	border-bottom: none;
+}
+
+img {
+	max-width: 425px;
+}
+
+</style>
+</head>
+<body>
+
+
+<div id="topmain">
+<div id="right">
+<h2>
+Were you looking for:</h2>
+<ul>
+<li><a href="../../Oxygen/Main/new_oxygen.php">What's New for the Oxygen Release?</a></li>
+<li><a href="../../Neon/Main/new_neon.php">What's New for the Neon Release?</a></li>
+<li><a href="../../Luna/Main/new_luna.php">What's New for the Luna Release?</a></li>
+<li><a href="../../Juno/Main/new_juno.php">What's New for the Juno Release?</a></li>
+<li><a href="../../Indigo/Main/new_indigo.php">What's New for the Indigo Release?</a></li>
+<li><a href="../../Kepler/Main/new_kepler.php">What's New for the Kepler Release?</a></li>
+</ul>
+</div>
+<div id="left">
+<br>
+
+<h1>What's new in Jubula in Mars</h1>
+<p>You can also read our <a href="http://www.bredex.de/blog_article_de/feature-tour-of-jubula-80.html">blog entry</a>
+ containing the feature tour for 8.0</p>
+<table>
+<tr>
+	<td class="entry_cell">
+		New Jubula Client API for writing tests in Java Code
+		</td>
+		<td>
+		<p>
+		 We've created a whole new layer in the ITE that allows you to write functional UI tests via an official Java client API. 
+		 Detailed information of the architecture and how to start can be found in the 
+		 <a href="http://testing.bredex.de/documentation-download.html" target="_blank">Developer Manual</a>. 
+		</p>
+		<p>
+		There are two blog entries <a href="http://www.bredex.de/blog_article_de/jubula-client-api.html" target="_blank">here</a> and 
+		<a href="http://www.bredex.de/blog_article_de/the-jubula-client-api-part-2.html" target="_blank">here</a> on this feature.
+		</p>
+		<p>
+		The video teaser for the <a href="https://www.eclipsecon.org/na2015/session/jekyll-and-hyde-jubula" target="_blank">Eclipse Con Talk</a> about the API is 
+		<a href="https://www.youtube.com/watch?feature=player_embedded&v=jeNBKf-hAmc" target=_blank">here</a>
+		</p>
+		<img alt="API" src="../images/API.png">
+		</td>	
+	</tr>
+<tr>
+	<td class="entry_cell">
+		Reporting to ALM systems now supports status changes
+		</td>
+		<td>
+		<p>
+		 You can now specify in the Project properties that you want to update fields on tasks in ALM repositories after a test has run. 
+		 This allows you to automatically change e.g. the status of tasks based on test results.
+		 There is a property inspector to let you see what properties a specific task has. 
+		</p>
+		<img alt="Reporting Rules" src="../images/ALMReportingRules.png">
+		</td>	
+	</tr>
+<tr>
+		<td class="entry_cell">
+		Further support for JavaFX AUT's
+		</td>
+		<td>
+		<p>
+		We have added more support for testing JavaFX AUT's and have fixed issues
+		occurring in this toolkit. Code coverage is now supported for JavaFX AUT's.
+		</p>
+		<p>
+		For full information, the JavaFX issue list is <a href="https://bugs.eclipse.org/bugs/showdependencytree.cgi?id=421595&hide_resolved=0" target="_blank">here</a>
+		</p>
+		</td>	
+	</tr>
+<tr>
+		<td class="entry_cell">
+		New description view
+		</td>
+		<td>
+		<p>
+		You can now enter descriptions for nodes (Test Cases, Test Suites, Test Jobs) in your tests. 
+		The descriptions are entered using a markup language, that you can select in the Project Properties.
+		Once you have entered descriptions, you can see them via the Description View when you select a node with a description. 
+		</p>
+		<img alt="Description View" src="../images/DescriptionView.png">
+		</td>	
+	</tr>
+<tr>
+		<td class="entry_cell">
+		Version numbers now allow major, minor, micro numbers and qualifiers
+		</td>
+		<td>
+		<p>
+		 You can now create versions of Projects that use major, minor and micro numbers as well as qualifiers as their version number.
+		 Version numbers can consist of just a number, just a qualifier, or a number and a qualifier, e.g. 1.0_release, 1.0, 1.0.0, 1.0.0_release, version3 
+		</p>	
+		</td>	
+	</tr>
+	
+</table>
+<h2><a href="https://bugs.eclipse.org/bugs/buglist.cgi?chfield=resolution&chfieldfrom=2014-07-01&chfieldto=2015-05-11&chfieldvalue=FIXED&classification=Technology&list_id=11709325&product=Jubula&query_format=advanced">Fixed Bugs for Mars</a></h2>
+</div>
+</div>
\ No newline at end of file
diff --git a/new/Mars/Main/new_mars.php b/new/Mars/Main/new_mars.php
new file mode 100644
index 0000000..08d6584
--- /dev/null
+++ b/new/Mars/Main/new_mars.php
@@ -0,0 +1,28 @@
+<?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	= null;
+	$Menu 	= new Menu();
+	include($App->getProjectCommon());
+	
+	$pageTitle 		= "New: Mars";
+	
+	$html = file_get_contents('new_mars.html');
+	
+	
+	# Generate the web page
+	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+?>
diff --git a/new/Mars/images/ALMReportingRules.png b/new/Mars/images/ALMReportingRules.png
new file mode 100644
index 0000000..f4ac3ad
--- /dev/null
+++ b/new/Mars/images/ALMReportingRules.png
Binary files differ
diff --git a/new/Mars/images/API.png b/new/Mars/images/API.png
new file mode 100644
index 0000000..9f9b68e
--- /dev/null
+++ b/new/Mars/images/API.png
Binary files differ
diff --git a/new/Mars/images/DescriptionView.png b/new/Mars/images/DescriptionView.png
new file mode 100644
index 0000000..cfbe4c0
--- /dev/null
+++ b/new/Mars/images/DescriptionView.png
Binary files differ
diff --git a/new/Neon/Main/new_neon.html b/new/Neon/Main/new_neon.html
new file mode 100644
index 0000000..4d9dff9
--- /dev/null
+++ b/new/Neon/Main/new_neon.html
@@ -0,0 +1,161 @@
+<br></br>
+
+<html>
+<head>
+<style type="text/css" title="text/css" media="screen">
+td  {
+	border-top: 1px solid #D4D4DD;
+	text-align: left;
+	vertical-align: top;
+	font-weight: normal;
+	padding: 5pt;
+	width: 425px;
+}
+
+td.entry_cell {
+	font-weight: bold;
+	width: 30%
+}
+
+td.change {
+	font-style: italic;
+	color: red;
+}
+
+table {
+    border-top-style: none;
+ 	border-collapse: collapse;
+}
+
+h2 {
+	border-bottom: none;
+}
+
+img {
+	max-width: 425px;
+}
+
+</style>
+</head>
+<body>
+
+
+<div id="topmain">
+<div id="right">
+<h2>
+Were you looking for:</h2>
+<ul>
+<li><a href="../../Oxygen/Main/new_oxygen.php">What's New for the Oxygen Release?</a></li>
+<li><a href="../../Mars/Main/new_mars.php">What's New for the Mars Release?</a></li>
+<li><a href="../../Luna/Main/new_luna.php">What's New for the Luna Release?</a></li>
+<li><a href="../../Juno/Main/new_juno.php">What's New for the Juno Release?</a></li>
+<li><a href="../../Indigo/Main/new_indigo.php">What's New for the Indigo Release?</a></li>
+<li><a href="../../Kepler/Main/new_kepler.php">What's New for the Kepler Release?</a></li>
+</ul>
+</div>
+<div id="left">
+<br>
+
+<h1>What's new in Jubula in Neon</h1>
+
+<table>
+<tr>
+	<td class="entry_cell">
+		Performance improvements
+		</td>
+		<td>
+		<p>
+		 We have made various improvements to the performance when saving, 
+		 opening test results, and working with the ITE in general.
+		</p>
+		<p>
+		The completeness checks and teststyle checks have been decoupled 
+		from saving, which also results in less waiting time after each save 
+		action.
+		</p>
+		</td>	
+	</tr>
+<tr>
+	<td class="entry_cell">
+		Copy and paste support within and between editors
+		</td>
+		<td>
+		<p>
+		 It is now possible to copy and paste Test Cases, Test Steps and Test Suites
+		 within and between editors.
+		</p>
+		<p>
+		The source editor must be saved before performing a copy action.
+		</p>
+
+		<img alt="Copy and Paste" src="../images/copyPaste.png">
+		</td>	
+	</tr>
+<tr>
+	<td class="entry_cell">
+		Additional support for JavaFX
+		</td>
+		<td>
+		<p>
+		 We have added support for components such as data pickers, 
+		 sliders, tree tables and also for checking properties at the mouse
+		 position.
+		</p>
+		</td>	
+	</tr>	
+<tr>
+	<td class="entry_cell">
+		In-editor comments
+		</td>
+		<td>
+		<p>
+		 You can now add multi-line comments in editors to add more information
+		 about the actions following the comment. 
+		</p>
+		<img alt="In-editor comments" src="../images/comments.png">
+		</td>	
+	</tr>	
+<tr>
+	<td class="entry_cell">
+		New actions for the SWT and GEF toolkits
+		</td>
+		<td>
+		<p>
+		 The support for the SWT and GEF toolkits has been improved 
+		 to allow checking properties of selected items (e.g. in lists,
+		 trees and tree tables), and also to allow more actions on the GEF figure canvas.
+		</p>
+		</td>	
+	</tr>
+<tr>
+	<td class="entry_cell">
+		Updates to the support in the client API
+		</td>
+		<td>
+		<p>
+		 The client API for writing tests in Java now supports screenshots on error
+		 and also allows self-written extensions for non-standard components to be 
+		 used as a part of a client API test.  
+		</p>
+		</td>	
+	</tr>		
+<tr>
+	<td class="entry_cell">
+		Individual profile selection for technical names in the object mapping editor
+		</td>
+		<td>
+		<p>
+		 In the object mapping editor, you can now specify a separate object 
+		 recognition profile for individual technical names.
+		</p>
+		<p>
+		This lets you use the standard heuristic recognition profile for 
+		all components, but e.g. the "Given Name" profile for specific, named
+		components. These components will only be located based on their name. 
+		<img alt="Object Mapping Profiles" src="../images/profiles.png">
+		</td>	
+	</tr>		
+</table>
+<h2><a href="https://bugs.eclipse.org/bugs/buglist.cgi?chfield=resolution&chfieldfrom=2015-05-11&chfieldto=2016-06-01&chfieldvalue=FIXED&classification=Technology&product=Jubula&query_format=advanced">Fixed Bugs for Neon</a></h2>
+</div>
+</div>
\ No newline at end of file
diff --git a/new/Neon/Main/new_neon.php b/new/Neon/Main/new_neon.php
new file mode 100644
index 0000000..c7aaf2a
--- /dev/null
+++ b/new/Neon/Main/new_neon.php
@@ -0,0 +1,28 @@
+<?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	= null;
+	$Menu 	= new Menu();
+	include($App->getProjectCommon());
+	
+	$pageTitle 		= "New: Neon";
+	
+	$html = file_get_contents('new_neon.html');
+	
+	
+	# Generate the web page
+	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+?>
diff --git a/new/Neon/images/comments.png b/new/Neon/images/comments.png
new file mode 100644
index 0000000..a8293dc
--- /dev/null
+++ b/new/Neon/images/comments.png
Binary files differ
diff --git a/new/Neon/images/copyPaste.png b/new/Neon/images/copyPaste.png
new file mode 100644
index 0000000..8e8134b
--- /dev/null
+++ b/new/Neon/images/copyPaste.png
Binary files differ
diff --git a/new/Neon/images/profiles.png b/new/Neon/images/profiles.png
new file mode 100644
index 0000000..6482bfc
--- /dev/null
+++ b/new/Neon/images/profiles.png
Binary files differ
diff --git a/new/Oxygen/Main/new_oxygen.html b/new/Oxygen/Main/new_oxygen.html
new file mode 100644
index 0000000..9e4d276
--- /dev/null
+++ b/new/Oxygen/Main/new_oxygen.html
@@ -0,0 +1,158 @@
+<br></br>
+
+<html>
+<head>
+<style type="text/css" title="text/css" media="screen">
+td  {
+	border-top: 1px solid #D4D4DD;
+	text-align: left;
+	vertical-align: top;
+	font-weight: normal;
+	padding: 5pt;
+	width: 425px;
+}
+
+td.entry_cell {
+	font-weight: bold;
+	width: 30%
+}
+
+td.change {
+	font-style: italic;
+	color: red;
+}
+
+table {
+    border-top-style: none;
+ 	border-collapse: collapse;
+}
+
+h2 {
+	border-bottom: none;
+}
+
+img {
+	max-width: 425px;
+}
+
+</style>
+</head>
+<body>
+
+
+<div id="topmain">
+<div id="right">
+<h2>
+Were you looking for:</h2>
+<ul>
+<li><a href="../../Neon/Main/new_neon.php">What's New for the Neon Release?</a></li>
+<li><a href="../../Mars/Main/new_mars.php">What's New for the Mars Release?</a></li>
+<li><a href="../../Luna/Main/new_luna.php">What's New for the Luna Release?</a></li>
+<li><a href="../../Juno/Main/new_juno.php">What's New for the Juno Release?</a></li>
+<li><a href="../../Indigo/Main/new_indigo.php">What's New for the Indigo Release?</a></li>
+<li><a href="../../Kepler/Main/new_kepler.php">What's New for the Kepler Release?</a></li>
+</ul>
+</div>
+<div id="left">
+<br>
+
+<h1>What's new in Jubula in Oxygen</h1>
+
+<table>
+<tr>
+	<td class="entry_cell">
+		Conditional Statements and Loops
+		</td>
+		<td>
+		<p>
+		 We introduced four new nodes altering the test execution flow: Conditional Statements and Loops.
+		</p>
+		<p>
+		The If-Then-Else-node allows you to specify one or more test cases or test steps as a condition. Based upon the result of the condition nodes, either the "then" or the "else" branch will be entered and the containing nodes will be executed. The condition can also be negated.
+		</p>
+		<p>
+		The While-Do-node and the Do-While-Node will both repeat the test nodes inside the "do"-branch until the condition is no longer being met. In contrary to the While-Do-node, the Do-While-node checks the condition after each run through the "do"-branch. Therefore, the Do-While-node will always run at least once.
+		</p>
+		<p>
+		The Repeat-node repeats the nodes inside the "do"-branch for a specified amount of times. 
+		</p>
+		<img alt="Conditional Example" src="../images/LoopAndIf.png">
+		</td>	
+	</tr>
+	<tr>
+	<td class="entry_cell">
+		Component Names
+		</td>
+		<td>
+		<p>
+		 Component name types are calculated and treated differently from this release onwards. The type becomes only decorative, so actions resulting in invalid component name types are allowed from now on, however, the user is warned before any action resulting in an invalid type.
+		 Component names with invalid type are decorated by error markers, just like component names which are mapped into a component which does not realize one of the actions which might be executed on the component name. 
+		</p>
+		</td>	
+	</tr>
+	<tr>
+	<td class="entry_cell">
+		Check actions with timeout parameter
+		</td>
+		<td>
+		<p>
+			Most of the check actions do now have a timeout parameter. If there is a timeout value greater than 0 the check action is checking multiple times if the wanted status has occurred. If this did not happen until the timeout is reached the check is marked as check failed. 
+		</p>
+		<img alt="Check with timeout" src="../images/CheckWithTimeout.png">
+		</td>	
+	</tr>
+	<tr>
+	<td class="entry_cell">
+		Skipping test steps
+		</td>
+		<td>
+		<p>
+		     Test steps can now be skipped by changing the value of at least one parameter of a test step to '##jbskip##'.
+		</p>
+		</td>	
+	</tr>
+	<tr>
+	<td class="entry_cell">
+		New navigation in HTML reports
+		</td>
+		<td>
+		<p>
+		     Similarly to the ITE, it is now possible to navigate between errors in an HTML report.
+		</p>
+		<img alt="HTML Test result navigation" src="../images/NavigationHtml.png">
+		</td>	
+	</tr>
+	<tr>
+	<td class="entry_cell">
+		Navigation between parents and childs
+		</td>
+		<td>
+		<p>
+		     To help navigating between Editors we have introduced double click on root Nodes of Test Case Editor's. This will activate a Editor in which the Test Case is referenced or if there are more than one such Editors open, you can choose one to activate in a dialog. Aswell if there is no such Editor open, you can choose a Test Case or Test Suite which references the Test Case, and open its Editor. 
+		</p>
+		</td>	
+	</tr>
+	<tr>
+	<td class="entry_cell">
+		Deletion of complete Trees
+		</td>
+		<td>
+		<p>
+		We introduced a new feature in the Test Case Browser called Delete with Orphans.
+		When tidying up a project, there are Test Cases that are no longer required or used. The Delete with Orphans feature allows you to show all Test Cases that would remain unused if a certain Test Case were deleted. It then offers you to delete the Test Case with all its remaining "Orphans	
+			</p>
+		</td>	
+	</tr>
+		<tr>
+	<td class="entry_cell">
+		Export JUnit reports
+		</td>
+		<td>
+		<p>
+		When generating TestResult XML/HTML files from Test Results, the generated files will now include an additional lightweight JUnit report. You can define referenced Test Cases as "JUnitTestSuite" for the generation of the JUnit report.</p>
+		</td>	
+	</tr>
+</table>
+<h2><a href="https://bugs.eclipse.org/bugs/buglist.cgi?chfield=resolution&chfieldfrom=2016-06-01&chfieldto=2017-05-03&chfieldvalue=FIXED&classification=Technology&list_id=16292072&product=Jubula&query_format=advanced">Fixed Bugs for Oxygen</a></h2>
+</div>
+</div>
\ No newline at end of file
diff --git a/new/Oxygen/Main/new_oxygen.php b/new/Oxygen/Main/new_oxygen.php
new file mode 100644
index 0000000..c759024
--- /dev/null
+++ b/new/Oxygen/Main/new_oxygen.php
@@ -0,0 +1,28 @@
+<?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	= null;
+	$Menu 	= new Menu();
+	include($App->getProjectCommon());
+	
+	$pageTitle 		= "New: Oxygen";
+	
+	$html = file_get_contents('new_oxygen.html');
+	
+	
+	# Generate the web page
+	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+?>
diff --git a/new/Oxygen/images/CheckWithTimeout.png b/new/Oxygen/images/CheckWithTimeout.png
new file mode 100644
index 0000000..a5cd3d0
--- /dev/null
+++ b/new/Oxygen/images/CheckWithTimeout.png
Binary files differ
diff --git a/new/Oxygen/images/LoopAndIf.png b/new/Oxygen/images/LoopAndIf.png
new file mode 100644
index 0000000..c0b5a38
--- /dev/null
+++ b/new/Oxygen/images/LoopAndIf.png
Binary files differ
diff --git a/new/Oxygen/images/NavigationHtml.png b/new/Oxygen/images/NavigationHtml.png
new file mode 100644
index 0000000..1ca1fef
--- /dev/null
+++ b/new/Oxygen/images/NavigationHtml.png
Binary files differ
diff --git a/new/_index.html b/new/_index.html
index 63c500f..862d7d0 100644
--- a/new/_index.html
+++ b/new/_index.html
@@ -45,7 +45,10 @@
 <h2>
 Were you looking for:</h2>
 <ul>
-<li><a href="new/Juno/Main/new_juno.php">What's New for the Juno Release?</a>
+<li><a href="new/Neon/Main/new_neon.php">What's New for the Neon Release?</a></li>
+<li><a href="new/Mars/Main/new_mars.php">What's New for the Mars Release?</a></li>
+<li><a href="new/Luna/Main/new_luna.php">What's New for the Luna Release?</a></li>
+<li><a href="new/Juno/Main/new_juno.php">What's New for the Juno Release?</a></li>
 <li><a href="new/Indigo/Main/new_indigo.php">What's New for the Indigo Release?</a></li>
 <li><a href="new/Kepler/Main/new_kepler.php">What's New for the Kepler Release?</a></li>
 </ul>
@@ -53,95 +56,103 @@
 <div id="left">
 <br>
 
-<h1>What's new in Jubula in Luna</h1>
-<p>You can also read our <a href="http://www.bredex.de/blog_article_de/feature-tour-of-jubula-80.html">blog entry</a>
- containing the feature tour for 8.0</p>
+<h1>What's new in Jubula in Oxygen</h1>
+
 <table>
 <tr>
-		<td class="entry_cell">
-		JavaFX AUT's supported
-		</td>
-		<td>
-		<p>
-		AUT's written with the JavaFX toolkit can now be tested. You can read more about this
-		in this <a href="http://www.bredex.de/blog_article_de/javafx-support-in-jubula.html">blog entry</a>
-		</p>
-		<img width="300px" alt="JavaFX Configuration" src="new/Luna/images/JavaFXConfig.png">
-		</td>	
-	</tr>
-<tr>
 	<td class="entry_cell">
-		<a href="http://www.bredex.de/blog_article_de/integrating-guidancer-and-jubula-with-alm-tools.html">Reporting to ALM systems supported</a>
+		Conditional Statements and Loops
 		</td>
 		<td>
 		<p>
-		 You can now configure your project to be connected to an application lifecycle management
-		 (ALM) system. Once you have done this, you can view items (issues, tickets) from the 
-		 ALM system, add Task IDs to your Test Cases and Test Suites, and automatically report 
-		 test results to the ALM system when a test has run. 
+		 We introduced four new nodes altering the test execution flow: Conditional Statements and Loops.
 		</p>
-		<img alt="Test Results in ALM" src="new/Luna/images/TestresultsInALM.png">
+		<p>
+		The If-Then-Else-node allows you to specify one or more test cases or test steps as a condition. Based upon the result of the condition nodes, either the "then" or the "else" branch will be entered and the containing nodes will be executed. The condition can also be negated.
+		</p>
+		<p>
+		The While-Do-node and the Do-While-Node will both repeat the test nodes inside the "do"-branch until the condition is no longer being met. In contrary to the While-Do-node, the Do-While-node checks the condition after each run through the "do"-branch. Therefore, the Do-While-node will always run at least once.
+		</p>
+		<p>
+		The Repeat-node repeats the nodes inside the "do"-branch for a specified amount of times. 
+		</p>
+		<img alt="Conditional Example" src="new/Oxygen/images/LoopAndIf.png">
 		</td>	
 	</tr>
-<tr>
-		<td class="entry_cell">
-		Tracking changes
+	<tr>
+	<td class="entry_cell">
+		Component Names
 		</td>
 		<td>
 		<p>
-		When change tracking is activated, you can see when a Test Case or Test Suite was 
-		created and / or last modified. Using a system property, you can also see the user who 
-		modified it.
-		</p>
-		<img alt="Change Information" src="new/Luna/images/ChangeInformation.png">
-		</td>	
-	</tr>
-<tr>
-		<td class="entry_cell">
-		Property information in the object mapping mode
-		</td>
-		<td>
-		<p>
-		When you collect components in Java applications using the object mapping mode,
-		you can see property information in the Properties View of the Object Mapping Editor. 
-		You can use the information to help you when performing "Check Property" or "Store Property"
-		actions.
-		</p>
-		<img alt="Property Information in Object Mapping Mode" src="new/Luna/images/PropertyInformationInOMM.png">
-		</td>	
-	</tr>
-<tr>
-		<td class="entry_cell">
-		Graphics component support for canvas
-		</td>
-		<td>
-		<p>
-		 You can now perform basic actions (click, check existence, wait for component) on 
-		 org.eclipse.ui.forms.widgets such as Hyperlinks.
+		 Component name types are calculated and treated differently from this release onwards. The type becomes only decorative, so actions resulting in invalid component name types are allowed from now on, however, the user is warned before any action resulting in an invalid type.
+		 Component names with invalid type are decorated by error markers, just like component names which are mapped into a component which does not realize one of the actions which might be executed on the component name. 
 		</p>
 		</td>	
 	</tr>
-<tr>
-		<td class="entry_cell">
-		Checkboxes in SWT tables can be tested
+	<tr>
+	<td class="entry_cell">
+		Check actions with timeout parameter
 		</td>
 		<td>
 		<p>
-		 Tables in SWT/RCP AUT's that have a checkbox in the first column can now be tested.
-		 You can toggle the state of the checkbox and also check the state of the checkbox.
+			Most of the check actions do now have a timeout parameter. If there is a timeout value greater than 0 the check action is checking multiple times if the wanted status has occurred. If this did not happen until the timeout is reached the check is marked as check failed. 
+		</p>
+		<img alt="Check with timeout" src="new/Oxygen/images/CheckWithTimeout.png">
+		</td>	
+	</tr>
+	<tr>
+	<td class="entry_cell">
+		Skipping test steps
+		</td>
+		<td>
+		<p>
+		     Test steps can now be skipped by changing the value of at least one parameter of a test step to '##jbskip##'.
 		</p>
 		</td>	
 	</tr>
-<tr>
-		<td class="entry_cell">
-		Graphics component support for JProgressBar
+	<tr>
+	<td class="entry_cell">
+		New navigation in HTML reports
 		</td>
 		<td>
 		<p>
-		You can now perform basic actions (click, check existence, wait for component) on 
-		 JProgressBars.
+		     Similarly to the ITE, it is now possible to navigate between errors in an HTML report.
 		</p>
+		<img alt="HTML Test result navigation" src="new/Oxygen/images/NavigationHtml.png">
+		</td>	
+	</tr>
+	<tr>
+	<td class="entry_cell">
+		Navigation between parents and childs
+		</td>
+		<td>
+		<p>
+		     To help navigating between Editors we have introduced double click on root Nodes of Test Case Editor's. This will activate a Editor in which the Test Case is referenced or if there are more than one such Editors open, you can choose one to activate in a dialog. Aswell if there is no such Editor open, you can choose a Test Case or Test Suite which references the Test Case, and open its Editor. 
+		</p>
+		</td>	
+	</tr>
+	<tr>
+	<td class="entry_cell">
+		Deletion of complete Trees
+		</td>
+		<td>
+		<p>
+		We introduced a new feature in the Test Case Browser called Delete with Orphans.
+		When tidying up a project, there are Test Cases that are no longer required or used. The Delete with Orphans feature allows you to show all Test Cases that would remain unused if a certain Test Case were deleted. It then offers you to delete the Test Case with all its remaining "Orphans	
+			</p>
+		</td>	
+	</tr>
+		<tr>
+	<td class="entry_cell">
+		Export JUnit reports
+		</td>
+		<td>
+		<p>
+		When generating TestResult XML/HTML files from Test Results, the generated files will now include an additional lightweight JUnit report. You can define referenced Test Cases as "JUnitTestSuite" for the generation of the JUnit report.</p>
+		</td>	
+	</tr>
 </table>
-<h2><a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&classification=Technology&product=Jubula&query_format=advanced&target_milestone=2.2&target_milestone=2.3&target_milestone=Luna%20M2&target_milestone=Luna%20M3&target_milestone=Luna%20M4&target_milestone=Luna%20M5&target_milestone=Luna%20M6&target_milestone=Luna%20M7">Fixed Bugs for Luna</a></h2>
+<h2><a href="https://bugs.eclipse.org/bugs/buglist.cgi?chfield=resolution&chfieldfrom=2016-06-01&chfieldto=2017-05-03&chfieldvalue=FIXED&classification=Technology&list_id=16292072&product=Jubula&query_format=advanced">Fixed Bugs for Oxygen</a></h2>
 </div>
 </div>
\ No newline at end of file
diff --git a/pages/_index.html b/pages/_index.html
index 66b21f6..011ab16 100755
--- a/pages/_index.html
+++ b/pages/_index.html
@@ -1,3 +1,9 @@
+
+<div id="topmain">
+<div id="left">
+<div class="jubula"></div>
+</div>
+<div id="right">
 <div id="bigbuttons">
 <h3>Primary Links</h3>
 <ul>
@@ -9,8 +15,7 @@
 	Getting involved</a></li>
 </ul>
 </div>
-
-<div id="topmain">
+</div>
 <div id="left">
 <h3>Jubula Functional Testing Tool</h3>
 <h2>Test</h2>
@@ -32,9 +37,9 @@
 will be happy to help you. 
 </p>
 <p>
-Jubula was contributed by <a href="http://www.bredexsw.com">BREDEX GmbH</a>, who also develop and provide the GUI<i>dancer</i> and 
-Jubula standalone versions. The GUI<i>dancer</i> and Jubula standalones incorporate the Jubula core and offer 
- additional features and options for productivity and comfort in testing.
+Jubula was contributed by <a href="http://www.bredexsw.com" target="_blank">BREDEX GmbH</a> from their 
+previous commercial tool GUI<i>dancer</i>. BREDEX GmbH also offer a Jubula standalone that 
+incorporates the Jubula core and offers additional features and options for productivity and comfort in testing.
 </p>
 <p>
 For an overview of what is available in the Jubula plugin and the standalones, please see the <a href="download.php">downloads page</a>.
@@ -47,20 +52,10 @@
 
 <div id="right">
 <h3>Something philosophical</h3>
-<p>Have you read our  <a href="http://www.bredex.de/web/index.php/blog_article_en/items/having-the-discipline-to-do-it-right.html" target="_blank">blog entry</a>
+<p>Have you read our  <a href="http://testing.bredex.de/having-the-discipline-to-do-it-right.html" target="_blank">blog entry</a>
 about why we don't recommend recording tests? 
 </p>
 </div>
-<div id="right">
-<h3>Jubula Webinar!</h3>
-<p>Watch the recorded <a href="http://live.eclipse.org/node/1031">Jubula Webinar</a> 
-via the Eclipse live site!</p>
-</div>
-<div id="right">
-<h2>Current test histogram</h2>
-<a href="images/testresults/testresult.png" target="_blank"><img src="images/testresults/testresult.png" width="250px" height="125px"></a>
-
-</div>
 
 <div id="left">
 <h3>Acceptance testing at the forefront</h3>
@@ -76,7 +71,10 @@
 <li>Find and fix errors early</li>
 </ul>
 
-<h3>Test design benefits: <a href="http://ftp.bredex.de/GUIdancerDemos/demo/script/WritingTests/WritingTests.html" target="_blank">See a video! (1min 42s)</a></h3>
+<h3>Test design benefits</h3>
+
+<iframe width="420" height="315" src="https://www.youtube-nocookie.com/embed/1Ph3J9hm04Q?rel=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>
+
 <ul>
 <li>No coding effort necessary to write tests, saving time and improving readability for all</li>
 <li>Support for best practices such as modularity, readability and abstraction 
@@ -90,10 +88,14 @@
 <li>React flexibly to events at runtime for maximum test coverage</li>
 </ul>
 
-<h3>Test result analysis: <a href="http://ftp.bredex.de/GUIdancerDemos/demo/script/InteractiveAnalysis/InteractiveAnalysis.html" target="_blank">See a video! (1min 2s)</a></h3>
+<h3>Test result analysis</h3>
+
+<iframe width="420" height="315" src="https://www.youtube-nocookie.com/embed/s2miS9-OAQo?rel=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>
+
 <ul>
 <li>View current and previous test results in Jubula client</li>
 <li>Automatic screenshot on error</li>
+<li>Report test results to application lifecycle management systems</li>
 </ul>
 </div>
 
@@ -103,7 +105,7 @@
 
 <div id="right">
 <h2>Follow us on Twitter:</h2>
-	<a href="http://twitter.com/EclipseJubula"
+	<a href="http://twitter.com/EclipseJubula" target="_blank"
 		class="twitter-follow-button" data-show-count="false">Follow
 		@EclipseJubula</a>
 	<script src="http://platform.twitter.com/widgets.js"
@@ -148,15 +150,15 @@
 
 <h3>Technical details</h3>
 <ul>
-<li>Supports Swing, SWT/RCP/GEF, JavaFX, HTML, .NET and iOS applications</li>
-<li>Platform independent testing on Windows, Linux/Unix and Mac</li>
+<li>Supports Swing, SWT/RCP/GEF, JavaFX and HTML applications</li>
+<li>Platform independent testing on Windows and Linux/Unix</li>
 <li>Client-server architecture for distributed testing</li>
 <li>Heuristic object recognition</li>
-<li>Command line client for continuous integration</li>
+<li>Command line clients for continuous integration</li>
 <li>Testing of multiple applications supported</li>
 <li>Context-sensitive help in client</li>
 <li>Projects stored in multi-user database</li>
-<li>Portability and version control via exports in XML format</li>
+<li>Portability and version control via export / import</li>
 </ul>
 
 </div>
diff --git a/pages/developers.html b/pages/developers.html
index 0840a9d..3aed63f 100644
--- a/pages/developers.html
+++ b/pages/developers.html
@@ -3,10 +3,6 @@
 <div id="topmain">
 <div id="left">
 <h2>Getting involved in the Jubula project</h2>
-
-
-<p>Are you interested in contributing to the Jubula project?</p>
-
 <ul>
 <li>See the <a href="http://wiki.eclipse.org/Jubula/JubulaContribGuid">Jubula contribution guide</a> for information on contributing to the project</li>
 <li>The <a href="http://wiki.eclipse.org/Development_Resources#Users:_Contributing_To_A_Project">Eclipse wiki</a> gives a good
@@ -16,6 +12,7 @@
 <p>
 We'll be happy to hear your thoughts, comments and suggestions and look forward to any patches or bug reports you provide!
 </p>
+<h4>Commits activity meter</h4>
 </div>
 
 <div id="right">
@@ -31,8 +28,5 @@
 <a href="images/testresults/testresult.png" target="_blank"><img src="images/testresults/testresult.png" width="250px" height="125px"></a>
 </div>
 
-<div id="left">
-<h2>Commits activity meter</h2>
- </div>
- 
+
  </div>
diff --git a/pages/documentation.html b/pages/documentation.html
index 6957684..778f269 100644
--- a/pages/documentation.html
+++ b/pages/documentation.html
@@ -7,12 +7,12 @@
 
 <p>The Jubula standalone version comes installed with complete documentation.
 </p>
-<p>You can view the User Manual and Reference Manual as a part of the 
+<p>You can view the User Manual, Developer Manual and Reference Manual as a part of the 
 <a href="http://help.eclipse.org">Eclipse Help</a> and as context-sensitive help from within 
 Jubula.
 <p>
-You can also download the documentation (release notes, installation manual, extension manual, user manual and reference manual) from 
-the BREDEX <a href="http://testing.bredex.de">Testing Resources Portal</a>.
+You can see the documentation (release notes, installation manual, developer manual, user manual and reference manual) from 
+the BREDEX <a href="http://testing.bredex.de" target="_blank">Testing Resources Portal</a>.
 
 <br></br>
 
@@ -48,7 +48,7 @@
 <div id= "right">
 <h3>Further information</h3>
 <ul>
-<li><a href="http://testing.bredex.de">BREDEX Testing Resources Portal</a>
+<li><a href="http://testing.bredex.de" target="_blank">BREDEX Testing Resources Portal</a>
 <li><a href="http://www.eclipse.org/forums/eclipse.jubula">Jubula Forum</a></li>
 </ul>
 </div>
diff --git a/pages/download.html b/pages/download.html
index 24340cb..15e771a 100644
--- a/pages/download.html
+++ b/pages/download.html
@@ -15,12 +15,12 @@
 		Use the table below to see which features are included in which distribution 
 		and to download the distribution that best suits your needs.</p>
 	
-		<table>
+		<table style="border-spacing:10px">
 		<tr>
-		<td width="20%">
+		<td width="15%">
 		<h4>Product</h4>
 		</td>
-		<td width="45%">
+		<td width="40%">
 		<h4>Contains</h4>
 		</td>
 		<td width="10%">
@@ -31,68 +31,67 @@
 		</td>
 		</tr>
 		</table>
-		<table>
+		<table style="border-spacing:10px">
 		<tr>
-		<td width="20%" valign="top">
-		<b>Jubula / GUI<i>dancer</i> Standalone</b>
+		<td width="15%" valign="top">
+		<b>Jubula Standalone</b>
 		</td>
-		<td width="45%" valign="top">
+		<td width="40%" valign="top">
 		Complete package: <br>
-		Jubula core, documentation (PDF and online), AUT Agent, Example 
+		Jubula core, documentation, AUT Agent, Example 
 		Projects and applications, autrun, testexec, dbtool, Swing toolkit, SWT/RCP/GEF
-		toolkit, JavaFX toolkit, HTML toolkit, iOS and .NET toolkits, database drivers, 
-		update site for Jubula Feature and Launc Configurations, Mylyn integration, 
-		ALM integration, Code Coverage, Reporting, Teststyle, Dashboard and 
-		<a href="http://eblog.chrononsystems.com/chronon-and-jubula-join-forces">Chronon support</a> 
-		for testing AUT's.
+		toolkit, JavaFX toolkit, HTML toolkit, database drivers, 
+		update site for Jubula Feature and Launch Configurations,Jubula Extension Wizard, Mylyn integration, 
+		ALM integration, Code Coverage, Reporting, Teststyle.
 		<br><br>
 		This package is provided by BREDEX GmbH and contains source code that is 
 		not EPL-conform.
 		<br><br>
-		The Jubula and GUI<i>dancer</i> standalones are feature-identical.
-		They differ only in their branding.
-		Jubula can be downloaded by anyone. 
-		GUI<i>dancer</i> can be downloaded on purchase of a support package.
+		The Jubula Standalone 8.4.1 contains the Jubula Functional Testing Feature in version 5.0.0.
 		</td>
 		<td  width="10%" valign="top">
-		8.0 (corresponds to 2.3.0 feature - update site available in the installation)
+		8.4.1
+		<br><br>
+		Sprint increments (beta versions) 
+		are also available for access to newer features and fixes.
 		</td>
 		<td width="25%" valign="top">
-		From the <br><a href="http://testing.bredex.de">BREDEX Testing Resources Portal</a>
+		From the <br><a href="http://testing.bredex.de" target="_blank">BREDEX Testing Resources Portal</a>
 		</td>
 		</tr>
 		</table>
 		
-		<table>
+		<table style="border-spacing:10px">
 		<tr>
-		<td width="20%" valign="top">
+		<td width="15%" valign="top">
 		<b>Jubula Functional Testing Feature</b>
 		</td>
-		<td width="45%" valign="top">
+		<td width="40%" valign="top">
 		Jubula core, documentation (online), embedded AUT Agent, Swing toolkit, 
-		SWT/RCP/GEF toolkit
+		SWT/RCP/GEF and JavaFX toolkits
 		</td>
 		<td width="10%" valign="top">
-		2.1.1
+		4.0
 		</td>
 		<td width="25%" valign="top">
-		<a href="http://download.eclipse.org/releases/kepler">Kepler Update Site</a>
+		<a href="http://download.eclipse.org/releases/neon">Neon Update Site</a>
 		</td>
 		</tr>
 		</table>
+		</br>
 		<table>
 		<tr>
-		<td width="20%" valign="top">
+		<td width="15%" valign="top">
 		<b>Jubula Launch Support</b>
 		</td>
-		<td width="45%" valign="top">
+		<td width="40%" valign="top">
 		Launch Configuration for Java Swing
 		</td>
 		<td  width="10%" valign="top">
-		2.1.1
+		4.0
 		</td>
 		<td width="25%" valign="top">
-		<a href="http://download.eclipse.org/releases/kepler">Kepler Update Site</a>
+		<a href="http://download.eclipse.org/releases/neon">Neon Update Site</a>
 		</td>
 		</tr>
 		<tr>
@@ -102,27 +101,24 @@
 		Launch Configuration for Eclipse RCP
 		</td>
 		<td valign="top">
-		2.1.1
+		4.0
 		</td>
 		<td valign="top">
-		<a href="http://download.eclipse.org/releases/kepler">Kepler Update Site</a>
+		<a href="http://download.eclipse.org/releases/neon">Neon Update Site</a>
 		</td>
 		</tr>
 		</table>
-		
-		<table>
+		</br>
+		<table style="border-spacing:10px">
 		<tr>
-		<td width="20%" valign="top">
+		<td width="15%" valign="top">
 		<b>Eclipse For Testers</b>
 		</td>
-		<td width="45%" valign="top">
+		<td width="40%" valign="top">
 		Jubula Functional Testing Feature (as described above).
-		<br>
-		Eclipse for Testers is available with the database drivers in a 
-		<a href="http://www.yoxos.com/">Yoxos Distribution</a>.
 		</td>
 		<td width="10%" valign="top">
-		2.0.0 (contains Jubula 2.1.1)
+		Contains Jubula 4.0.0
 		</td>
 		<td width="25%" valign="top">
 		<a href="http://www.eclipse.org/downloads">Eclipse Packages</a>
@@ -140,12 +136,12 @@
 			<p>Use the table below to download any additional software you require 
 			for your distribution.
 			</p>
-			<table>
+			<table style="border-spacing:10px">
 			<tr>
-			<td width="20%">
+			<td width="15%">
 			<h4>Product</h4>
 			</td>
-			<td width="45%">
+			<td width="40%">
 			<h4>Contains</h4>
 			</td>
 			<td width="10%">
@@ -165,7 +161,9 @@
 			drivers and configuration settings available.
 			</td>
 			<td valign="top">
-			up to and including 2.1
+			4.0.0
+			<br><br>
+			The database drivers are compatible with the Jubula Feature versions [0.9.0,5.0.0)
 			</td>
 			<td valign="top">
 			<a href="http://marketplace.eclipse.org/content/eclipse-jubula-database-drivers">
@@ -181,7 +179,7 @@
 			These are currently only available in the standalone version.
 			</td>
 			<td valign="top">
-			8.0
+			8.4.1
 			</td>
 			<td>
 			Jubula Standalone (see above)
@@ -192,7 +190,7 @@
 		<h4>Working with the Marketplace</h4>
 		<p> You can use the Eclipse Marketplace Client available via the Help
 		menu and search for Jubula, visit the <a href="http://marketplace.eclipse.org/content/eclipse-jubula-database-drivers">Marketplace</a>
-		with your browser or use the new Drag&Drop support to drop the installer icon below 
+		with your browser or use the Drag&Drop support to drop the installer icon below 
 		onto your Eclipse workbench window.
 			</p>
 			<p>
@@ -215,7 +213,7 @@
 		<table>
 		<tr>
 		<td>
-		<b><a href="http://help.eclipse.org/juno/topic/org.eclipse.jubula.client.ua.help/html/manual/node81.html">
+		<b><a href="http://help.eclipse.org/mars/topic/org.eclipse.jubula.client.ua.help/content/html/userManual/tasks/startAndConfigureAUTs/starting-java-auts.html?cp=45_2_7_3_5#starting-java-with-the-command">
 		autrun</a></b>
 		</td>
 		<td>
@@ -224,7 +222,7 @@
 		</tr>
 		<tr>
 		<td>
-		<b><a href="http://help.eclipse.org/juno/topic/org.eclipse.jubula.client.ua.help/html/manual/node290.html?cp=19_2_30">
+		<b><a href="http://help.eclipse.org/mars/topic/org.eclipse.jubula.client.ua.help/content/html/userManual/tasks/useTestExec/using-the-test-executor-for-testing-from-the-command-line.html?cp=45_2_24">
 		testexec</a></b>
 		</td>
 		<td>
@@ -233,7 +231,7 @@
 		</tr>
 		<tr>
 		<td>
-		<b><a href="http://help.eclipse.org/juno/topic/org.eclipse.jubula.client.ua.help/html/manual/node295.html?cp=19_2_31">
+		<b><a href="http://help.eclipse.org/mars/topic/org.eclipse.jubula.client.ua.help/content/html/userManual/tasks/useDBToolClient/using-the-dbtool-client-to-import-delete-and-export-from-the-command-line.html?cp=45_2_25">
 		dbtool</a></b>
 		</td>
 		<td>
@@ -246,13 +244,14 @@
 		<div id="right">
 		<h2>Jubula documentation</h2>
 		If you aren't working with the standalone application, 
-		you can download the installation manual, release notes and extension example 
-		from the <a href="http://testing.bredex.de">Testing Resources Portal</a>.
+		you can view the installation manual, release notes and developer manual 
+		on the <a href="http://testing.bredex.de" target="_blank">Testing Resources Portal</a>.
+		You can also find the documentation under <a href="http://help.eclipse.org">help.eclipse.org</a>
 	</div>
 	<div id="right">
 		<h2>Older versions</h2>
 		For standalone installers for older versions, please see the software downloads
-		page on the  <a href="http://testing.bredex.de/sw-doku-downloads.html">Testing Resources Portal</a>.
+		page on the  <a href="http://testing.bredex.de/sw-doku-downloads.html" target="_blank">Testing Resources Portal</a>.
 	</div>
 
 
diff --git a/pages/support.html b/pages/support.html
index 3bf511a..b665582 100644
--- a/pages/support.html
+++ b/pages/support.html
@@ -59,7 +59,6 @@
 You can submit and view bugs using the Jubula bugzilla. Please check for 
 <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;bug_severity=blocker;bug_severity=critical;bug_severity=major;bug_severity=normal;bug_severity=minor;bug_severity=trivial;bug_status=UNCONFIRMED;bug_status=NEW;bug_status=ASSIGNED;bug_status=REOPENED;bug_status=RESOLVED;bug_status=VERIFIED;resolution=---;resolution=FIXED;classification=Technology;product=Jubula">duplicates</a>
 first. When entering a defect, please provide steps to reproduce the bug, information on your environment, version and architecture and any other information (log files, error messages) that will help us to reproduce it.
-We also accept <a href="http://www.chrononsystems.com/products/chronon-time-travelling-debugger">Chronon</a> recordings attached to bugs to help us analyze the problem.
 </p>
 <p>
 More information on writing good bug reports is in the <a href="http://wiki.eclipse.org/JubulaWikiBugGuidelines">Jubula Wiki</a>.
@@ -85,7 +84,7 @@
 </li>
 <li>
 Context-sensitive online help is available from most views and dialogs in Jubula. 
-Press <b>F1</b> for currently relevant topics. Full PDF documentation is installed with 
+Press <b>F1</b> for currently relevant topics. Full documentation is installed with 
 the standalone version.  
 </li>
 </ul>
diff --git a/style.css b/style.css
index 58f90b2..f1f4129 100755
--- a/style.css
+++ b/style.css
@@ -15,6 +15,13 @@
 	width: 100%;
 	height: 240px;
 }
+
+.jubula {
+	background-image: url("images/jubulaBanner.png");
+	background-repeat: no-repeat;
+	width: 450px;
+	height: 240px;	
+}
 	
 #left {
 	width: 60%;
@@ -96,8 +103,6 @@
 	
 #bigbuttons {
 	position: relative;
-	left: 420px;
-	top: -170px;
 }
 #bigbuttons h3{
 	visibility: hidden;
diff --git a/support.php b/support.php
index d4d1e65..9105cbe 100644
--- a/support.php
+++ b/support.php
@@ -19,7 +19,6 @@
 	include($App->getProjectCommon());
 	
 	$pageTitle 		= "Jubula Support";
-	$theme = "Nova";
 	
 	$html = file_get_contents('pages/support.html');
 	
