diff --git a/sdnr/wt/helpserver/feature/pom.xml b/sdnr/wt/helpserver/feature/pom.xml
index 7545ce3..e2d22b9 100644
--- a/sdnr/wt/helpserver/feature/pom.xml
+++ b/sdnr/wt/helpserver/feature/pom.xml
@@ -21,7 +21,9 @@
  * ============LICENSE_END=========================================================
 
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
@@ -34,7 +36,7 @@
     <groupId>org.onap.ccsdk.parent</groupId>
     <artifactId>single-feature-parent</artifactId>
     <version>1.2.2-SNAPSHOT</version>
-    <relativePath/>
+    <relativePath />
   </parent>
 
   
diff --git a/sdnr/wt/helpserver/installer/pom.xml b/sdnr/wt/helpserver/installer/pom.xml
index cdf810e..84ad2c9 100755
--- a/sdnr/wt/helpserver/installer/pom.xml
+++ b/sdnr/wt/helpserver/installer/pom.xml
@@ -1,5 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
 
 	<groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
@@ -12,7 +14,7 @@
 		<groupId>org.onap.ccsdk.parent</groupId>
 		<artifactId>odlparent-lite</artifactId>
 		<version>1.2.2-SNAPSHOT</version>
-		<relativePath/>
+		<relativePath />
 	</parent>
 
 	<properties>
diff --git a/sdnr/wt/helpserver/pom.xml b/sdnr/wt/helpserver/pom.xml
index 89070da..dcc7dd6 100755
--- a/sdnr/wt/helpserver/pom.xml
+++ b/sdnr/wt/helpserver/pom.xml
@@ -21,7 +21,9 @@
  * ============LICENSE_END=========================================================
 
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
 
     	<groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
@@ -47,4 +49,4 @@
 	<properties>
 		<feature-name>sdnr-wt-helpserver</feature-name>
 	</properties>
-</project>
+</project>
\ No newline at end of file
diff --git a/sdnr/wt/helpserver/provider/README.md b/sdnr/wt/helpserver/provider/README.md
new file mode 100644
index 0000000..d35aeb5
--- /dev/null
+++ b/sdnr/wt/helpserver/provider/README.md
@@ -0,0 +1,34 @@
+##Creating help files
+
+#### Link and references to pictures.
+
+All links are relative to the current md-file.
+
+Link to pages located in the same directory:
+
+```
+[linkname](file.md)
+```
+
+Link to subpages located in subdirectories:
+
+```
+[linkname](subfolder/file.md)
+```
+
+External Links:
+
+```
+[linkname](linkurl "linktitle")
+```
+
+Images:
+
+```
+![SDN-R in ONAP](./ONAP-SDN-R.png "SDN-R in ONAP")
+```
+
+#### Supported formates
+
+md-format:
+Picture formats: PNG
diff --git a/sdnr/wt/helpserver/provider/pom.xml b/sdnr/wt/helpserver/provider/pom.xml
index 392ae1a..7c7d1fd 100644
--- a/sdnr/wt/helpserver/provider/pom.xml
+++ b/sdnr/wt/helpserver/provider/pom.xml
@@ -1,83 +1,75 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- * ============LICENSE_START======================================================= 
-	* ONAP : CCSDK.sdnr.wt.apigateway.provider * ================================================================================ 
-	* Copyright (C) 2018 highstreet technologies GmbH Intellectual Property. 
-	* All rights reserved. * ================================================================================ 
-	* Licensed under the Apache License, Version 2.0 (the "License"); * you may 
-	not use this file except in compliance with the License. * You may obtain 
-	a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * 
-	* Unless required by applicable law or agreed to in writing, software * distributed 
-	under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES 
-	OR CONDITIONS OF ANY KIND, either express or implied. * See the License for 
-	the specific language governing permissions and * limitations under the License. 
-	* ============LICENSE_END========================================================= -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<!-- * ============LICENSE_START=======================================================
+    * ONAP : CCSDK.sdnr.wt.apigateway.provider * ================================================================================
+    * Copyright (C) 2018 highstreet technologies GmbH Intellectual Property.
+    * All rights reserved. * ================================================================================
+    * Licensed under the Apache License, Version 2.0 (the "License"); * you may
+    not use this file except in compliance with the License. * You may obtain
+    a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 *
+    * Unless required by applicable law or agreed to in writing, software * distributed
+    under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES
+    OR CONDITIONS OF ANY KIND, either express or implied. * See the License for
+    the specific language governing permissions and * limitations under the License.
+    * ============LICENSE_END========================================================= -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 
-	<modelVersion>4.0.0</modelVersion>
+    <modelVersion>4.0.0</modelVersion>
 
-	<groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
-	<artifactId>sdnr-wt-helpserver-provider</artifactId>
-	<version>0.4.2-SNAPSHOT</version>
-	<name>ccsdk-features-sdnr-wt :: ${project.artifactId}</name>
-	<packaging>bundle</packaging>
-	<properties>
-		<checkstyle.skip>true</checkstyle.skip>
-		<buildtime>${maven.build.timestamp} UTC</buildtime>
-		<distversion>ONAP Dublin (Flourine-SR1)</distversion>
-		<buildno>1.15b7491</buildno>
-	</properties>
-	<parent>
-		<groupId>org.onap.ccsdk.parent</groupId>
-		<artifactId>binding-parent</artifactId>
-		<version>1.2.2-SNAPSHOT</version>
-		<relativePath/>
-	</parent>
-	<dependencies>
-		<dependency>
-			<groupId>javax.servlet</groupId>
-			<artifactId>servlet-api</artifactId>
-			<version>2.5</version>
-		</dependency>
-		<dependency>
-			<groupId>org.slf4j</groupId>
-			<artifactId>slf4j-simple</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.json</groupId>
-			<artifactId>json</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.osgi</groupId>
-			<artifactId>org.osgi.core</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.osgi</groupId>
-			<artifactId>org.osgi.compendium</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.mockito</groupId>
-			<artifactId>mockito-core</artifactId>
-			<scope>test</scope>
-		</dependency>
+    <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+    <artifactId>sdnr-wt-helpserver-provider</artifactId>
+    <version>0.4.2-SNAPSHOT</version>
+    <name>ccsdk-features-sdnr-wt :: ${project.artifactId}</name>
+    <packaging>bundle</packaging>
+    <properties>
+        <checkstyle.skip>true</checkstyle.skip>
+     </properties>
+    <parent>
+        <groupId>org.onap.ccsdk.parent</groupId>
+        <artifactId>binding-parent</artifactId>
+        <version>1.2.2-SNAPSHOT</version>
+        <relativePath />
+    </parent>
+    <dependencies>
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>servlet-api</artifactId>
+            <version>2.5</version>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-simple</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.json</groupId>
+            <artifactId>json</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.compendium</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+            <scope>test</scope>
+        </dependency>
 
-	</dependencies>
-	<build>
-		<resources>
-			<!-- replace properties in about.md -->
-			<resource>
-			<directory>src/main/resources</directory>
-			<filtering>true</filtering>
-			</resource>
-		</resources>
-		<plugins>
-			<!-- fixed bug for sonarcube -->
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-surefire-plugin</artifactId>
-				<configuration>
-					<useSystemClassLoader>false</useSystemClassLoader>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
+    </dependencies>
+    <build>
+        <plugins>
+            <!-- fixed bug for sonarcube -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <useSystemClassLoader>false</useSystemClassLoader>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 </project>
diff --git a/sdnr/wt/helpserver/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/helpserver/HelpServlet.java b/sdnr/wt/helpserver/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/helpserver/HelpServlet.java
index 35e3515..f91e96b 100644
--- a/sdnr/wt/helpserver/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/helpserver/HelpServlet.java
+++ b/sdnr/wt/helpserver/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/helpserver/HelpServlet.java
@@ -26,8 +26,6 @@
 import java.net.URISyntaxException;
 import java.net.URLDecoder;
 import java.nio.file.Path;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
@@ -67,11 +65,7 @@
         resp.addHeader("Access-Control-Allow-Methods", "OPTIONS, HEAD, GET, POST, PUT, DELETE");
         resp.addHeader("Access-Control-Allow-Headers", "X-Requested-With, Content-Type, Content-Length");
         if (query != null && query.contains("meta")) {
-            /*
-             * LOG.debug("received post with uri="+req.getRequestURI()); String
-             * uri=req.getRequestURI().substring(BASEURI.length()); if(uri.startsWith("/"))
-             * uri=uri.substring(1);
-             */
+          
             File f = new File(HelpInfrastructureObject.KARAFHELPDIRECTORY, "meta.json");
             if (f.exists()) {
                 LOG.debug("found local meta file");
@@ -120,36 +114,20 @@
                 }
                 LOG.debug("delivering file");
                 OutputStream out = resp.getOutputStream();
-                String version = null;
-                if (REDIRECT_LINKS) {
-                    version = getVersionFromRequestedUri(uri);
-                }
-                if (this.isTextFile(f) && REDIRECT_LINKS && version != null) {
-                    final String regex =
-                            "(!?\\[[^\\]]*?\\])\\(((?:(?!http|www\\.|\\#|\\.com|\\.net|\\.info|\\.org|\\.svg|\\.png|\\.jpg|\\.gif|\\.jpeg|\\.pdf).)*?)\\)";
-                    final Pattern pattern = Pattern.compile(regex);
-                    Matcher matcher;
-                    String line;
-                    try (BufferedReader br = new BufferedReader(new FileReader(f))) {
-                        line = br.readLine();
-                        while (line != null) {
-                            // check line for internal link
-                            matcher = pattern.matcher(line);
-                            if (matcher.find()) {
-                                // extend link with specific version
-                                line = line.replace(matcher.group(2),
-                                        "../" + matcher.group(2) + version + "/README.md");
-                            }
-                            out.write((line + "\n").getBytes());
-                            line = br.readLine();
-
-                        }
-                        out.flush();
-                        out.close();
-                        br.close();
-                    }
-
-                } else {
+//                if (this.isTextFile(f) && REDIRECT_LINKS) {
+//                    String line;
+//                    try (BufferedReader br = new BufferedReader(new FileReader(f))) {
+//                        line = br.readLine();
+//                        while (line != null) {
+//                        	out.write((line + "\n").getBytes());
+//                            line = br.readLine();
+//                        }
+//                        out.flush();
+//                        out.close();
+//                        br.close();
+//                    }
+//                } else 
+                {
                     try (FileInputStream in = new FileInputStream(f)) {
 
                         byte[] buffer = new byte[1024];
@@ -169,27 +147,6 @@
         }
     }
 
-    /**
-     * Extract version from URI string
-     * @param uri = "help/folder1/folder2/version/README.md"
-     * @return version as a string
-     */
-    private static String getVersionFromRequestedUri(String uri) {
-        if (uri == null) {
-            return null;
-        }
-        int lastidx = uri.lastIndexOf("/");
-        if (lastidx < 0) {
-            return null;
-        }
-        int slastidx = uri.lastIndexOf("/", lastidx - 1);
-        if (slastidx < 0) {
-            return null;
-        }
-        return uri.substring(slastidx + 1, lastidx);
-
-    }
-
     private boolean ispdf(File f) {
         return f != null ? this.ispdf(f.getName()) : false;
     }
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/README.md
similarity index 89%
rename from sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/0.4.0/README.md
rename to sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/README.md
index c03217d..c99967d 100644
--- a/sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/0.4.0/README.md
+++ b/sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/README.md
@@ -1,7 +1,7 @@
 # MediatorServer
 
 ## Description
-The mediator server is the physical device on which multiple instances of the [mediators](mediator/) are running. Additionally a small webserver provides an API to control and create the mediators via HTTP-API. These mediators are translating the requests and responses between the SDN-Controller(netconf) and the device(snmp). Because of the restricted snmp protocol (port 162 only) we have to implement a prerouting automatism that forwards the alarms sent by the devices to another local port so that each mediator only gets the alarms of its device.
+The mediator server is the physical device on which multiple instances of the [mediators](mediator/README.md) are running. Additionally a small webserver provides an API to control and create the mediators via HTTP-API. These mediators are translating the requests and responses between the SDN-Controller(netconf) and the device(snmp). Because of the restricted snmp protocol (port 162 only) we have to implement a prerouting automatism that forwards the alarms sent by the devices to another local port so that each mediator only gets the alarms of its device.
 
 
 
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/installation/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/installation/README.md
similarity index 100%
rename from sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/installation/0.4.0/README.md
rename to sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/installation/README.md
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/mediator/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/mediator/README.md
similarity index 100%
rename from sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/mediator/0.4.0/README.md
rename to sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/mediator/README.md
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/meta.json b/sdnr/wt/helpserver/provider/src/main/resources/help/meta.json
index b23e8d9..0bcd0f3 100644
--- a/sdnr/wt/helpserver/provider/src/main/resources/help/meta.json
+++ b/sdnr/wt/helpserver/provider/src/main/resources/help/meta.json
@@ -1,222 +1,177 @@
 {
-	"sdnr": {
-		"nodes": {
-			"connect": {
-				"versions": {
-					"0.4.0": {
-						"date": "2018-02-24",
-						"path": "sdnr/connect/0.4.0/README.md",
-						"label": "Connect"
-					},
-					"current": {
-						"date": "2018-02-24",
-						"path": "sdnr/connect/0.4.0/README.md",
-						"label": "Connect"
-					}
-				},
-				"label": "Connect"
-			},
-			"pnfFault": {
-				"versions": {
-					"0.4.0": {
-						"date": "2018-02-24",
-						"path": "sdnr/pnfFault/0.4.0/README.md",
-						"label": "pnf Fault"
-					},
-					"current": {
-						"date": "2018-02-24",
-						"path": "sdnr/pnfFault/0.4.0/README.md",
-						"label": "pnf Fault"
-					}
-				},
-				"label": "pnf Fault"
-			},
-			"pnfMaintenance": {
-				"versions": {
-					"0.4.0": {
-						"date": "2018-09-13",
-						"path": "sdnr/pnfMaintenance/0.4.0/README.md",
-						"label": "pnf Maintenance"
-					},
-					"current": {
-						"date": "2018-09-13",
-						"path": "sdnr/pnfMaintenance/0.4.0/README.md",
-						"label": "pnf Maintenance"
-					}
-				},
-				"label": "pnf Maintenance"
-			},
-			"pnfConfig": {
-				"versions": {
-					"0.4.0": {
-						"date": "2018-02-24",
-						"path": "sdnr/pnfConfig/0.4.0/README.md",
-						"label": "pnf Config"
-					},
-					"current": {
-						"date": "2018-02-24",
-						"path": "sdnr/pnfConfig/0.4.0/README.md",
-						"label": "pnf Config"
-					}
-				},
-				"label": "pnf Config"
-			},
-			"pnfPerformance": {
-				"versions": {
-					"0.4.0": {
-						"date": "2018-02-24",
-						"path": "sdnr/pnfPerformance/0.4.0/README.md",
-						"label": "pnf Performance"
-					},
-					"current": {
-						"date": "2018-02-24",
-						"path": "sdnr/pnfPerformance/0.4.0/README.md",
-						"label": "pnf Performance"
-					}
-				},
-				"label": "pnf Performance"
-			},
-			"pnfInventory": {
-				"versions": {
-					"0.4.0": {
-						"date": "2018-02-24",
-						"path": "sdnr/pnfInventory/0.4.0/README.md",
-						"label": "pnf Inventory"
-					},
-					"current": {
-						"date": "2018-02-24",
-						"path": "sdnr/pnfInventory/0.4.0/README.md",
-						"label": "pnf Inventory"
-					}
-				},
-				"label": "pnf Inventory"
-			},
-			"pnfMediator": {
-				"versions": {
-					"0.4.0": {
-						"date": "2018-02-24",
-						"path": "sdnr/pnfMediator/0.4.0/README.md",
-						"label": "pnf Mediator"
-					},
-					"current": {
-						"date": "2018-02-24",
-						"path": "sdnr/pnfMediator/0.4.0/README.md",
-						"label": "pnf Mediator"
-					}
-				},
-				"label": "pnf Mediator"
-			},
-			"mwtnTest": {
-				"versions": {
-					"0.4.0": {
-						"date": "2018-02-24",
-						"path": "sdnr/mwtnTest/0.4.0/README.md",
-						"label": "LTE RAN Test"
-					},
-					"current": {
-						"date": "2018-02-24",
-						"path": "sdnr/mwtnTest/0.4.0/README.md",
-						"label": "LTE RAN Test"
-					}
-				},
-				"label": "LTE RAN Test"
-			},
-			"mwtnLog": {
-				"versions": {
-					"0.4.0": {
-						"date": "2018-02-24",
-						"path": "sdnr/mwtnLog/0.4.0/README.md",
-						"label": "Logs"
-					},
-					"current": {
-						"date": "2018-02-24",
-						"path": "sdnr/mwtnLog/0.4.0/README.md",
-						"label": "Logs"
-					}
-				},
-				"label": "Logs"
-			}
-		},
-		"versions": {
-			"0.4.0": {
-				"date": "2018-02-24",
-				"path": "sdnr/0.4.0/README.md",
-				"label": "SDN-R"
-			},
-			"current": {
-				"date": "2018-02-24",
-				"path": "sdnr/0.4.0/README.md",
-				"label": "SDN-R"
-			}
-		},
-		"label": "SDN-R"
-	},
-	"mediatorserver":{
-		"nodes":{
-			"installation":{
-				"versions":{
-					"0.4.0":{"date":"","path":"mediatorserver/installation/0.4.0/README.md","label":""},
-					"current":{"date":"","path":"mediatorserver/installation/0.4.0/README.md","label":""}
-				},
-				"label":"Installation"
-			},
-			"mediator":{
-				"versions":{
-					"0.4.0":{"date":"","path":"mediatorserver/mediator/0.4.0/README.md","label":""},
-					"current":{"date":"","path":"mediatorserver/mediator/0.4.0/README.md","label":""}
-				},
-				"label":"Mediator"
-			}
-		},
-		"versions":{
-			"0.4.0":{"date":"","path":"mediatorserver/0.4.0/README.md","label":""},
-			"current":{"date":"","path":"mediatorserver/0.4.0/README.md","label":""}
-		},
-		"label":"MediatorServer"
-	},
-	"faq": {
-		"versions": {
-			"0.4.0": {
-				"date": "2018-02-24",
-				"path": "sdnr/0.4.0/faq.md",
-				"label": "FAQ"
-			},
-			"current": {
-				"date": "2018-02-24",
-				"path": "sdnr/0.4.0/faq.md",
-				"label": "FAQ"
-			}
-		},
-		"label": "FAQ"
-	},
-	"abbreviations": {
-		"versions": {
-			"0.4.0": {
-				"date": "2018-02-24",
-				"path": "sdnr/0.4.0/abbreviations.md",
-				"label": "Abbreviations"
-			},
-			"current": {
-				"date": "2018-02-24",
-				"path": "sdnr/0.4.0/abbreviations.md",
-				"label": "Abbreviations"
-			}
-		},
-		"label": "Abbreviations"
-	},
-	"about": {
-		"versions": {
-			"0.4.0": {
-				"date": "2018-02-24",
-				"path": "sdnr/0.4.0/about.md",
-				"label": "About"
-			},
-			"current": {
-				"date": "2018-02-24",
-				"path": "sdnr/0.4.0/about.md",
-				"label": "About"
-			}
-		},
-		"label": "About"
-	}
+    "sdnr": {
+        "nodes": {
+            "connect": {
+                "versions": {
+                    "0.4.0": {
+                        "date": "2018-02-24",
+                        "path": "sdnr/connect/README.md",
+                        "label": "Connect"
+                    },
+                    "current": {
+                        "date": "2018-02-24",
+                        "path": "sdnr/connect/README.md",
+                        "label": "Connect"
+                    }
+                },
+                "label": "Connect"
+            },
+            "pnfFault": {
+                "versions": {
+                    "0.4.0": {
+                        "date": "2018-02-24",
+                        "path": "sdnr/pnfFault/README.md",
+                        "label": "Fault"
+                    },
+                    "current": {
+                        "date": "2018-02-24",
+                        "path": "sdnr/pnfFault/README.md",
+                        "label": "Fault"
+                    }
+                },
+                "label": "Fault"
+            },
+            "pnfMaintenance": {
+                "versions": {
+                    "0.4.0": {
+                        "date": "2018-09-13",
+                        "path": "sdnr/pnfMaintenance/README.md",
+                        "label": "Maintenance"
+                    },
+                    "current": {
+                        "date": "2018-09-13",
+                        "path": "sdnr/pnfMaintenance/README.md",
+                        "label": "Maintenance"
+                    }
+                },
+                "label": "Maintenance"
+            },
+            "pnfConfig": {
+                "versions": {
+                    "0.4.0": {
+                        "date": "2018-02-24",
+                        "path": "sdnr/pnfConfig/README.md",
+                        "label": "Config"
+                    },
+                    "current": {
+                        "date": "2018-02-24",
+                        "path": "sdnr/pnfConfig/README.md",
+                        "label": "Config"
+                    }
+                },
+                "label": "Config"
+            },
+            "pnfPerformance": {
+                "versions": {
+                    "0.4.0": {
+                        "date": "2018-02-24",
+                        "path": "sdnr/pnfPerformance/README.md",
+                        "label": "Performance"
+                    },
+                    "current": {
+                        "date": "2018-02-24",
+                        "path": "sdnr/pnfPerformance/README.md",
+                        "label": "Performance"
+                    }
+                },
+                "label": "Performance"
+            },
+            "pnfInventory": {
+                "versions": {
+                    "0.4.0": {
+                        "date": "2018-02-24",
+                        "path": "sdnr/pnfInventory/README.md",
+                        "label": "Inventory"
+                    },
+                    "current": {
+                        "date": "2018-02-24",
+                        "path": "sdnr/pnfInventory/README.md",
+                        "label": "Inventory"
+                    }
+                },
+                "label": "Inventory"
+            },
+            "pnfMediator": {
+                "versions": {
+                    "0.4.0": {
+                        "date": "2018-02-24",
+                        "path": "sdnr/pnfMediator/README.md",
+                        "label": "Mediator"
+                    },
+                    "current": {
+                        "date": "2018-02-24",
+                        "path": "sdnr/pnfMediator/README.md",
+                        "label": "Mediator"
+                    }
+                },
+                "label": "Mediator"
+            }
+        },
+        "versions": {
+            "0.4.0": {
+                "date": "2018-02-24",
+                "path": "sdnr/README.md",
+                "label": "SDN-R"
+            },
+            "current": {
+                "date": "2018-02-24",
+                "path": "sdnr/README.md",
+                "label": "SDN-R"
+            }
+        },
+        "label": "SDN-R"
+    },
+    "mediatorserver":{
+        "nodes":{
+            "installation":{
+                "versions":{
+                    "0.4.0":{"date":"","path":"mediatorserver/installation/README.md","label":""},
+                    "current":{"date":"","path":"mediatorserver/installation/README.md","label":""}
+                },
+                "label":"Installation"
+            },
+            "mediator":{
+                "versions":{
+                    "0.4.0":{"date":"","path":"mediatorserver/mediator/README.md","label":""},
+                    "current":{"date":"","path":"mediatorserver/mediator/README.md","label":""}
+                },
+                "label":"Mediator"
+            }
+        },
+        "versions":{
+            "0.4.0":{"date":"","path":"mediatorserver/README.md","label":""},
+            "current":{"date":"","path":"mediatorserver/README.md","label":""}
+        },
+        "label":"MediatorServer"
+    },
+    "faq": {
+        "versions": {
+            "0.4.0": {
+                "date": "2018-02-24",
+                "path": "sdnr/faq.md",
+                "label": "FAQ"
+            },
+            "current": {
+                "date": "2018-02-24",
+                "path": "sdnr/faq.md",
+                "label": "FAQ"
+            }
+        },
+        "label": "FAQ"
+    },
+    "abbreviations": {
+        "versions": {
+            "0.4.0": {
+                "date": "2018-02-24",
+                "path": "sdnr/abbreviations.md",
+                "label": "Abbreviations"
+            },
+            "current": {
+                "date": "2018-02-24",
+                "path": "sdnr/abbreviations.md",
+                "label": "Abbreviations"
+            }
+        },
+        "label": "Abbreviations"
+    }
 }
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/about.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/about.md
deleted file mode 100644
index 31fd5fe..0000000
--- a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/about.md
+++ /dev/null
@@ -1 +0,0 @@
-ONAP SDN-R | ONF Wireless for ${distversion} - Build: ${buildtime} (${buildno})
\ No newline at end of file
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/ONAP-SDN-R.png b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/ONAP-SDN-R.png
similarity index 100%
rename from sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/ONAP-SDN-R.png
rename to sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/ONAP-SDN-R.png
Binary files differ
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/README.md
similarity index 91%
rename from sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/README.md
rename to sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/README.md
index c087110..72e4cad 100644
--- a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/README.md
+++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/README.md
@@ -2,6 +2,7 @@
 
 SDN-R adds features and functionality to the OpenDaylight-based ONAP controller 'SDN-C'. It is built on the Common Controller Framework to control and manage wireless resources. Wireless resources are virtual network functions (e.g. vBBU, vEPC) or physical network functions (e.g. microwave and millimeter wave radios, eNodeB, RRH, DAS equipment).
 
-SDN-R is integrated into ONAP. Therefore it is interfacing with PNFs and VNFs and with other ONAP components, such as A&AI, DCAE and SO.
+SDN-R is integrated into ONAP. Therefore it is interfacing with PNFs and VNFs and with other ONAP components, such as A&AI, DCAE and SO.  
+[See abbreviations](abbreviations.md)
 
-![SDN-R in ONAP](./ONAP-SDN-R.png "SDN-R in ONAP")
\ No newline at end of file
+![SDN-R in ONAP](./ONAP-SDN-R.png "SDN-R in ONAP")
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/abbreviations.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/abbreviations.md
similarity index 100%
rename from sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/abbreviations.md
rename to sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/abbreviations.md
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/connect/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/connect/README.md
similarity index 84%
rename from sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/connect/0.4.0/README.md
rename to sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/connect/README.md
index 12e4dbe..6eba754 100644
--- a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/connect/0.4.0/README.md
+++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/connect/README.md
@@ -4,27 +4,20 @@
 
 ## Views
 
-The graphical user interfaces is divided in four sections.
+The graphical user interfaces is divided in three sections.
 
 ### Required Network Elements
 
 Required Network Elements are physical network functions, which are planned or expected in the network. This means the identifier, IP addresses and its required configuration is well-known and available in a planning database or in ONAP A&AI.
 
+This view also offer to manually configure/mount the device with the '+' icon. The SDN controller will then start connecting the Netconf server.
+
 ### Unknown Network Elements
 
 Most of the physical network function support an automatic registration procedure to the SDN controller. It may  happen, that devices are connected to the SDN Controller but not available in planning data. 
 
 It might be a normal occurrence for very cheap devices, where an entire planning process to too expensive. But is may also happen that the identifier used in planning process differ from the identifier currently configured in the device. 
 
-### Mount NetConf Server
-
-The view offer manually configuration of a device. The SDN controller will then start connecting the NetConf server. 
-
 ### Connection Status Log
 
 The log lists the connections status changes between SDN Controller and NetConf servers (devices).
-
-
-## Video
-
-https://youtu.be/QhchzRV2tac
\ No newline at end of file
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/faq.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/faq.md
similarity index 68%
rename from sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/faq.md
rename to sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/faq.md
index d815746..f9d5e50 100644
--- a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/faq.md
+++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/faq.md
@@ -1,6 +1,6 @@
 # Frequently asked questions
 
-- - -
+
 
 ## Which browser should I use to operate Opendaylight SDN-R User interface?
 
@@ -49,4 +49,24 @@
 grep -anr --include=*.log* "LKCYFL79Q01M01MSS801" . | grep 2018 >> 09-LKCYFL79Q01M01MSS801.txt
 ```
 
-- - -
+
+## How to report an odlux issue
+
+If you would like to report an odlux issue which you have noticed in the Graphical User Interface, please provide the following information:
+
+1. **Description**: In which application you have noticed the issue?
+
+2. **Environment**: 
+    - Which browser is used and the version of the browser.  eg: *Google chrome - version 71.0.3578.80  / Mozilla Firefox.*
+    - Which Operating system and version. eg: *Linux/ Windows 10 -  version 1803.* 
+    - In which language you are using the application. 
+    - The application URL which is available on the browser address bar.  eg: *http://hostname/odlux/index.html#/connectApp* 
+
+3. **Expected Result**: What is the expected result you are looking for?
+
+4. **Actual Result**: What is the actual result you got?
+
+5. **Steps to reproduce**: Describe the steps to reproduce the scenario. If possible, please provide the screenshots
+ 
+The above information helps us to analyze the problem quicker.
+
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/mwtnLog/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/mwtnLog/README.md
similarity index 100%
rename from sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/mwtnLog/0.4.0/README.md
rename to sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/mwtnLog/README.md
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/mwtnTest/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/mwtnTest/README.md
similarity index 100%
rename from sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/mwtnTest/0.4.0/README.md
rename to sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/mwtnTest/README.md
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfConfig/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfConfig/README.md
similarity index 95%
rename from sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfConfig/0.4.0/README.md
rename to sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfConfig/README.md
index d398a8e..d36ec8e 100644
--- a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfConfig/0.4.0/README.md
+++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfConfig/README.md
@@ -10,6 +10,3 @@
 
 Connections status information are updated automatically due to a web socket for notifications from OpenDaylight to the browser.
 
-## Video
-
-https://youtu.be/QhchzRV2tac
\ No newline at end of file
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfFault/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfFault/README.md
similarity index 71%
rename from sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfFault/0.4.0/README.md
rename to sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfFault/README.md
index bfe1774..b7db438 100644
--- a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfFault/0.4.0/README.md
+++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfFault/README.md
@@ -8,7 +8,7 @@
 
 ### Current Alarms
 
-It list all current active faults in the network. In addition is also list alarms send by the SDN controller itself, which detects connections losses to the NetConf server (connectionLossOAM) or which detects connection loss to a devices via a mediator to a device (connectionLossNeOAM).
+It list all current active faults in the network. In addition it also list alarms sent by the SDN controller itself, which detects connections losses to the NetConf server (connectionLossOAM) or which detects connection loss to a devices via a mediator to a device (connectionLossNeOAM).
 
 ### Alarm Notifications
 
@@ -16,18 +16,15 @@
 
 ### Alarm Log
 
-Next to the current active alarms an alarm log list all alarm notifications of the past.
+Next to the current active alarms an alarm log lists all alarm notifications of the past.
 
 ## Implementation
 
-The application has two parts. While the server is listening for NetConf notifications to store them in the data base the client retrieves the information from the data base and displays them in a grid view.
+The application has two parts. While the server is listening for NetConf notifications to store them in the database the client retrieves the information from the database and displays them in a grid view.
 
-The server synchronizes with the current alarm lists of the devices and calculates based on raise and clear notifications the current alarm status of the network. The current alarms are stored in a data base. In addition all Problem Notifications received by the SDN controller are stored. There is no logic implemented on the client.
+The server synchronizes with the current alarm lists of the devices and calculates based on raise and clear notifications the current alarm status of the network. The current alarms are stored in a database. In addition all Problem Notifications received by the SDN controller are stored. There is no logic implemented on the client.
 
 An alarm status bar on top of each graphical user interface informs the operator about the health status of the network.
 
 The OpenDaylight DLUX web application uses web sockets for updating the graphical user interface in case of Problem Notification (devices) and Connection Status Notifications (ODL).
 
-## Video
-
-https://youtu.be/vONKAtFZ8wc
\ No newline at end of file
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfInventory/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfInventory/0.4.0/README.md
deleted file mode 100644
index 4362808..0000000
--- a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfInventory/0.4.0/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Inventory
-
-The application offers basic inventory management of devices supporting ONF-TR-512. 
-
-After selection of a currently connected physical network function, the inventory data - basically serial-numbers and part-numbers are displaced accroding to the containment of the equipment.
-
-## Video
-
-[ONAP / ONF proof of concept](https://cloud-highstreet-technologies.com/nextcloud/index.php/s/m4wFfqkQ1qK3hHe "ONAP / ONF proof of concept")
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfInventory/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfInventory/README.md
new file mode 100644
index 0000000..d8122ad
--- /dev/null
+++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfInventory/README.md
@@ -0,0 +1,21 @@
+# Inventory
+
+The application offers basic inventory management of devices supporting ONF-TR-512. 
+
+The view displays the inventory data of the network element - basically serial-numbers and part-numbers are displaced according to the containment of the equipment.
+
+##### Inventory Export:
+
+As the default pagination size is set to 10, when you export the data only first 10 rows or the first 10 filtered rows shown on the page will be exported to a file.
+The inventory export allows the export of up to 1000 entries, when the pagination size is increased to 1000. 
+So, It is recommended to change the pagination size 'Rows per page' to 1000 if you want to export the complete Inventory data. 
+
+To export the Inventory data:
+The behaviour is different depending on the browser:
+
+a) Some browsers allows you to save the file with the predefined name export.csv. In case your browser does not offer this function please use 'Save as..' 
+   option and define the filename with extension csv. 
+
+b) Some browsers saves the file automatically with the alphanumeric name without an extension. In such case please go to the downloaded file location and rename the file
+   with the extension after the download. (eg: export_file.csv)
+
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfMaintenance/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfMaintenance/0.4.0/README.md
deleted file mode 100644
index 6f5ab54..0000000
--- a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfMaintenance/0.4.0/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Maintenance Mode
-
-The 'Maintenance' application on the OpenDaylight provides the information of the Network Elements which are set for Maintenance, currently or in the future.
-
-When a Network Element is mounted with the maintenance mode it automatically shows on this application with the Information like when maintenance will be started or ended.
-
-Maintenance Mode field in this application shows if the Network Element is in maintenance mode currently or not.
-If it is True it means the Network Element is currently undergoing maintenance, If false it means maintenance might have been set for future or maintenance is already completed.
-
-Users have access to disable the Maintenance mode or change the maintenance start and end dates at any point of time by clicking on the Manage checkbox available.
\ No newline at end of file
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfMaintenance/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfMaintenance/README.md
new file mode 100644
index 0000000..2deadca
--- /dev/null
+++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfMaintenance/README.md
@@ -0,0 +1,10 @@
+# Maintenance
+
+The 'Maintenance' application on the OpenDaylight provides the information of the Network Elements which are set for Maintenance, currently or in the future.
+User can manage devices to set the maintenance mode so that no unnecessary alarms are created. 
+When the device is in Maintenace alarms are not forwarded to DCAE and when the device maintenance is turned off the alarms will start flowing again.
+
+'Active' field in this application shows if the Network Element is in maintenance mode currently or not.
+If it is 'active' it means the Network Element is currently undergoing maintenance, If 'not active' it means maintenance might have been set for future or maintenance is already completed.
+
+Users have access to disable the Maintenance mode or change the maintenance start and end dates at any point of time by using the  available options in actions column.
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfMediator/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfMediator/README.md
similarity index 100%
rename from sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfMediator/0.4.0/README.md
rename to sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfMediator/README.md
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfPerformance/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfPerformance/0.4.0/README.md
deleted file mode 100644
index a1d3918..0000000
--- a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfPerformance/0.4.0/README.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Performance Monitoring
-
-Performance Monitoring values measured by the devices are necessary to analyze and optimize the network. Therefore the application automatically retrieves all historical performance values from the devices and stores them in a data base. The client part just retrieves the values from the database and displays them in graphical and/or grid views.
-
-## Current performance values
-
-After selection of a connected PNF supporting ONF-TR-532 and an physical interface, the application collects the current performance values directly from the device and displays then in table views. 
-
-## Performance history values
-
-After selection of a connected PNF supporting ONF-TR-532 and an physical interface, the application collects the received and centralized stored performance values for this interface and displays then in table views. 
-
-## Performance link values
-
-After selection of two air-interface creating an air-interface-link, the application collects the received and centralized stored performance values for this link and displays the data in diagrams and table views. 
-
-## Video
-
-https://youtu.be/fgwbKFt9cos
\ No newline at end of file
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfPerformance/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfPerformance/README.md
new file mode 100644
index 0000000..2db5eda
--- /dev/null
+++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfPerformance/README.md
@@ -0,0 +1,8 @@
+# Performance
+
+Performance Monitoring values measured by the devices are necessary to analyze and optimize the network. Therefore the application automatically retrieves all historical performance values from the devices and stores them in a database. The client part just retrieves the values from the database and displays them in graphical user interface.
+
+## Performance history values
+
+After selection of a connected PNF supporting ONF-TR-532 and an physical interface, the application collects the received and centralized stored performance values for this interface and displays them in table views. 
+
diff --git a/sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestMyServlet.java b/sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestMyServlet.java
index e51cc68..2e4f987 100644
--- a/sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestMyServlet.java
+++ b/sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestMyServlet.java
@@ -120,7 +120,7 @@
 
     @Test
     public void testServlet2() {
-        this.testGetRequest("test/0.4.0/test.txt");
+        this.testGetRequest("test/test.txt");
         this.testGetRequest("test.css");
         this.testGetRequest("test.eps");
         this.testGetRequest("test.pdf");
@@ -156,6 +156,6 @@
         } catch (Exception e) {
         }
 
-        assertEquals(CONTENT,sw.toString().trim());
+        assertEquals("compare content for "+fn,CONTENT,sw.toString().trim());
     }
 }
