diff --git a/Build/Packaging.targets b/Build/Packaging.targets
index 2d57de687171b089a23d2c62c046e1f6256b4742..8e783fb915289d497bf85886d174efef7918a9b7 100644
--- a/Build/Packaging.targets
+++ b/Build/Packaging.targets
@@ -66,7 +66,7 @@
 		<VectoXMLExamples Include="$(SolutionDir)VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\*-sample.xml"/>
 		<UserManual Include="$(SolutionDir)Documentation\User Manual\help.html"/>
 		<UserManual Include="$(SolutionDir)Documentation\VectoHashingTool\HashingToolHelp.html"/>
-		<UserManual Include="$(SolutionDir)Documentation\XML\*.pdf"/>
+		<UserManual Include="$(SolutionDir)Documentation\XML\*.png"/>
 		<UserManual Include="$(SolutionDir)Documentation\XML\VectoParameters.html"/>
 		<UserManual Include="$(SolutionDir)Documentation\User Manual Source\JIRA Quick Start Guide.pdf"/>
 		<UserManual Include="$(SolutionDir)Documentation\Cdv_Generator_VECTO3.2.xlsx"/>
diff --git a/Documentation/XML/CustomerInformation.0.7.png b/Documentation/XML/CustomerInformation.0.7.png
new file mode 100644
index 0000000000000000000000000000000000000000..98e0cad39bfb2da1351db668d01bb659b6bb7ddc
Binary files /dev/null and b/Documentation/XML/CustomerInformation.0.7.png differ
diff --git a/Documentation/XML/ManufacturerRecord.0.7.png b/Documentation/XML/ManufacturerRecord.0.7.png
new file mode 100644
index 0000000000000000000000000000000000000000..91158b0d55358852e339fd8755f55d51ec87eb43
Binary files /dev/null and b/Documentation/XML/ManufacturerRecord.0.7.png differ
diff --git a/Documentation/XML/MonitoringReport.0.7.png b/Documentation/XML/MonitoringReport.0.7.png
new file mode 100644
index 0000000000000000000000000000000000000000..810eafd3d7ed7754017041ab2c233c595b9c49db
Binary files /dev/null and b/Documentation/XML/MonitoringReport.0.7.png differ
diff --git a/Documentation/XML/RenderTable.xslt b/Documentation/XML/RenderTable.xslt
new file mode 100644
index 0000000000000000000000000000000000000000..1a36d0e56d1015c5263a0025e66a25dfee2442e2
--- /dev/null
+++ b/Documentation/XML/RenderTable.xslt
@@ -0,0 +1,625 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?altova_samplexml ..\..\VectoCore\VectoCore\Resources\XSD\VectoDefinitions.xsd?>
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vecto="urn:tugraz:ivt:VectoAPI:ParameterDocumentation" xmlns:fn="http://www.w3.org/2005/xpath-functions">
+	<xsl:output method="html" omit-xml-declaration="yes" encoding="utf-8" indent="yes"/>
+	<xsl:param name="pSortingValues" select="'Job,Vehicle,Engine,Gearbox,TorqueConverter,Angulargear,Retarder,Axlegear,Axle,Wheels,Auxiliaries,ADAS,Driver,DrivingCycle'"/>
+	<xsl:variable name="vSortingValues" select="concat(',', $pSortingValues, ',')"/>
+	<!--
+
+Basic functionality:
+  the function 'vecto:GetParameters' recursively traverses all elements, starting from the root and builds a tree according to the xml structure.
+  this tree looks as follows:
+
+  (example seee at the end)
+
+	<childnodes>
+		<child name="/ElementName/">
+			/reference to the actual element in the XSD - xs:element/
+			<type>
+				/reference to the actual type of this element - xs:complexType or xs:simpleType/
+				/contains vectoParameterDefinition/
+			</type>
+			<childnodes>
+				....
+			</childnodes>
+		</child>
+	</childnodes>
+
+	for a correct mapping of the input parameter (element) and the documentation (xs:simpleType) the input parameter has to be annotated with the parameter number
+	the xs:simpleType has to contain a vectoParam:description block with all required elements
+
+	this tree is built for engineering mode, declaration mode, and components (declaration mode) separately
+
+ ### Match the whole document  ### 
+
+-->
+	<xsl:template match="/">
+		<!-- set variables used later -->
+		<xsl:variable name="maxParamNumber">
+			<xsl:call-template name="maximun">
+				<xsl:with-param name="list" select="document(//@schemaLocation)//xs:simpleType//xs:appinfo/vecto:description/vecto:parameterId"/>
+			</xsl:call-template>
+		</xsl:variable>
+		<xsl:variable name="dateTimeNow">
+			<xsl:value-of select="current-dateTime()"/>
+		</xsl:variable>
+		<xsl:variable name="engineeringRoot" select="document(//@schemaLocation)//xs:complexType[@name='VectoJobEngineeringType']"/>
+		<xsl:variable name="declarationRoot" select="document(//@schemaLocation)//xs:complexType[@name='VectoDeclarationJobType']"/>
+		<xsl:variable name="componentRoot" select="document(//@schemaLocation)//xs:element[@name='VectoInputDeclaration']/xs:complexType"/>
+		<xsl:variable name="engineeringParams" select="vecto:GetParameters($engineeringRoot, document(//@schemaLocation))"/>
+		<xsl:variable name="declarationParams" select="vecto:GetParameters($declarationRoot, document(//@schemaLocation))"/>
+		<xsl:variable name="componentParams" select="vecto:GetParameters($componentRoot, document(//@schemaLocation))"/>
+		<!-- HTML output -->
+		<xsl:text disable-output-escaping="yes">&lt;!DOCTYPE html&gt;</xsl:text>
+		<html>
+			<head>
+				<title>Vecto Input Parameters</title>
+				<script src="https://code.jquery.com/jquery-3.2.1.min.js"/>
+				<style type="text/css">
+					<xsl:copy-of select="document('style.css')"/>
+				</style>
+			</head>
+			<body>
+				<h1>Vecto Input Parameters</h1>
+				<div class="schemaVersion">Schema Version: <xsl:value-of select="document(//@schemaLocation)//xs:schema/@version"/>
+				</div>
+				<div class="generated">Generated: <xsl:value-of select="format-dateTime($dateTimeNow, '[D01].[M01].[Y0001] [H]:[m]')"/>
+				</div>
+				<div class="nextParameter">Next free parameter: <xsl:value-of select="sum($maxParamNumber + 1)"/>
+				</div>
+				<table border="1" class="parameters">
+					<thead>
+						<tr>
+							<th class="parameterId">Param ID</th>
+							<th class="component">Component</th>
+							<th class="name">Name</th>
+							<th class="type">Type</th>
+							<th class="unit">Unit</th>
+							<th class="range">Range</th>
+							<th class="genericValues">Generic Values</th>
+							<th class="xmlpath">XML Path</th>
+							<th class="xmltype">XML Type</th>
+							<th class="comment">Definition</th>
+						</tr>
+					</thead>
+					<tbody>
+						<xsl:call-template name="RenderTableRows">
+							<xsl:with-param name="document" select="document(//@schemaLocation)"/>
+							<xsl:with-param name="declarationParams" select="$declarationParams"/>
+							<xsl:with-param name="componentParams" select="$componentParams"/>
+							<xsl:with-param name="engineeringParams" select="$engineeringParams"/>
+						</xsl:call-template>
+					</tbody>
+				</table>
+				<xsl:call-template name="RenderLegend"/>
+			</body>
+			<script>
+				<xsl:value-of select="fn:unparsed-text('custom.js')" disable-output-escaping="yes"/>
+			</script>
+		</html>
+	</xsl:template>
+	<!--
+
+ #### END WHOLE DOCUMENT ### 
+
+-->
+	<xsl:template name="RenderTableRows">
+		<xsl:param name="document"/>
+		<xsl:param name="declarationParams"/>
+		<xsl:param name="componentParams"/>
+		<xsl:param name="engineeringParams"/>
+		<xsl:for-each select="Q{http://www.altova.com/xslt-extensions}distinct-nodes(($declarationParams|$engineeringParams)//xs:appinfo/vecto:description/vecto:parameterId[contains(ancestor-or-self::child[1]/(xs:element|xs:attribute)/xs:annotation/xs:documentation, text())])">
+			<xsl:sort data-type="number" select="string-length(substring-before($vSortingValues,concat(',',@component,',')))"/>
+			<xsl:sort data-type="number" select="text()"/>
+			<xsl:call-template name="RenderParam">
+				<xsl:with-param name="mergedDocuments" select="$document"/>
+				<xsl:with-param name="declarationParams" select="$declarationParams"/>
+				<xsl:with-param name="componentParams" select="$componentParams"/>
+				<xsl:with-param name="engineeringParams" select="$engineeringParams"/>
+			</xsl:call-template>
+		</xsl:for-each>
+	</xsl:template>
+	<!--
+
+=========================
+-->
+	<xsl:template name="RenderParam">
+		<xsl:param name="mergedDocuments"/>
+		<xsl:param name="declarationParams"/>
+		<xsl:param name="componentParams"/>
+		<xsl:param name="engineeringParams"/>
+		<xsl:for-each select=".">
+			<xsl:apply-templates select=".">
+				<xsl:with-param name="mergedDocuments" select="$mergedDocuments"/>
+				<xsl:with-param name="declarationParams" select="$declarationParams"/>
+				<xsl:with-param name="componentParams" select="$componentParams"/>
+				<xsl:with-param name="engineeringParams" select="$engineeringParams"/>
+			</xsl:apply-templates>
+		</xsl:for-each>
+	</xsl:template>
+	<!--
+
+=========================
+-->
+	<xsl:template match="vecto:parameterId">
+		<xsl:param name="mergedDocuments"/>
+		<xsl:param name="declarationParams"/>
+		<xsl:param name="componentParams"/>
+		<xsl:param name="engineeringParams"/>
+		<xsl:param name="xmlTreeNode"/>
+		<xsl:variable name="paramTypeName" select="./ancestor::xs:simpleType/@name"/>
+		<xsl:variable name="paramValue" select="text()"/>
+		
+				<xsl:call-template name="RenderSingleRow">
+					<xsl:with-param name="mergedDocuments" select="$mergedDocuments"/>
+					<xsl:with-param name="declarationParams" select="$declarationParams"/>
+					<xsl:with-param name="componentParams" select="$componentParams"/>
+					<xsl:with-param name="engineeringParams" select="$engineeringParams"/>
+				</xsl:call-template>
+			
+	</xsl:template>
+	<!--
+
+=========================
+-->
+	<xsl:template name="RenderSingleRow">
+		<xsl:param name="mergedDocuments"/>
+		<xsl:param name="declarationParams"/>
+		<xsl:param name="componentParams"/>
+		<xsl:param name="engineeringParams"/>
+		<xsl:variable name="paramNbr" select="./text()"/>
+		<xsl:variable name="declarationInstance" select="$declarationParams//xs:appinfo/vecto:description/vecto:parameterId[contains(ancestor-or-self::child[1]/(xs:element|xs:attribute)/xs:annotation/xs:documentation, text())][text()=$paramNbr]"/>
+		<xsl:variable name="componentInstance" select="$componentParams//xs:appinfo/vecto:description/vecto:parameterId[contains(ancestor-or-self::child[1]/(xs:element|xs:attribute)/xs:annotation/xs:documentation, text())][text()=$paramNbr]"/>
+		<xsl:variable name="engineeringInstance" select="$engineeringParams//xs:appinfo/vecto:description/vecto:parameterId[contains(ancestor-or-self::child[1]/(xs:element|xs:attribute)/xs:annotation/xs:documentation, text())][text()=$paramNbr]"/>
+		<tr>
+			<xsl:variable name="cssClass" select="../@status | vecto:ContainsParameter($declarationInstance, 'Declaration ') | vecto:ContainsParameter($engineeringInstance, 'Engineering ')"/>
+			<xsl:if test="$cssClass">
+				<xsl:attribute name="class"><xsl:value-of select="$cssClass" separator=" "/></xsl:attribute>
+			</xsl:if>
+			<td class="parameterId">
+				<xsl:value-of select="format-number(., 'P000')"/>
+			</td>
+			<td class="component">
+				<xsl:value-of select="@component"/>
+			</td>
+			<td class="name">
+				<xsl:variable name="elementName" select="fn:distinct-values(($declarationInstance|$engineeringInstance)/ancestor::child[1]/@nodeName)"/>
+				<xsl:choose>
+					<xsl:when test="count($elementName) eq 1">
+						<xsl:value-of select="$elementName"/>
+					</xsl:when>
+					<xsl:otherwise>
+						<div class="declaration">
+							<xsl:value-of select="$declarationInstance/ancestor::child[1]/@nodeName"/>
+						</div>
+						<div class="engineering">
+							<xsl:value-of select="$engineeringInstance/ancestor::child[1]/@nodeName"/>
+						</div>
+					</xsl:otherwise>
+				</xsl:choose>
+				<!--xsl:if test="not($xsdInstance/@name)">
+					<xsl:value-of select="./@usage"/>
+				</xsl:if-->
+			</td>
+			<!--<td class="description"/>-->
+			<td class="type">
+				<xsl:value-of select="substring-after(./ancestor::xs:simpleType/xs:restriction/@base, ':')"/>
+			</td>
+			<td class="unit">[<xsl:value-of select="../vecto:unit"/>]</td>
+			<xsl:call-template name="ParameterRange"/>
+			<td class="genericValues">
+				<span>
+					<xsl:value-of select="../vecto:genericValueType"/>
+				</span>
+				<xsl:if test="../vecto:genericValueSource"> (<span>
+						<xsl:value-of select="../vecto:genericValueSource"/>)</span>
+				</xsl:if>
+			</td>
+			<td class="xmlpath">
+				<xsl:attribute name="sorting"><xsl:call-template name="RenderXPathOrder"><xsl:with-param name="xpath" select="vecto:GetXMLPath($declarationInstance/ancestor::child[1]/*[1])"/></xsl:call-template></xsl:attribute>
+				<xsl:if test="$declarationInstance/ancestor::child[1]/*[1]">
+				<div class="declaration">
+					<span class="element">VectoInputDeclaration</span>
+					<xsl:call-template name="RenderXPath">
+						<xsl:with-param name="xpath" select="vecto:GetXMLPath($declarationInstance/ancestor::child[1]/*[1])"/>
+					</xsl:call-template>
+				</div>
+				</xsl:if>
+				<xsl:if test="$componentInstance/ancestor::child[1]/*[1]">
+				<div class="declaration component">
+					<span class="element">VectoInputDeclaration</span>
+					<xsl:call-template name="RenderXPath">
+						<xsl:with-param name="xpath" select="vecto:GetXMLPath($componentInstance/ancestor::child[1]/*[1])"/>
+					</xsl:call-template>
+				</div>
+				</xsl:if>
+				<div class="engineering">
+					<xsl:for-each select="$engineeringInstance">
+						<div>
+							<span class="element">
+								<xsl:choose>
+									<xsl:when test="./ancestor::child[xs:element/@name='Vehicle']">VectoInputEngineering</xsl:when>
+									<xsl:otherwise>VectoComponentEngineering</xsl:otherwise>
+								</xsl:choose>
+							</span>
+							<xsl:call-template name="RenderXPath">
+								<xsl:with-param name="xpath" select="vecto:GetXMLPath(./ancestor::child[1]/*[1])"/>
+							</xsl:call-template>
+						</div>
+					</xsl:for-each>
+				</div>
+			</td>
+			<td class="xmltype">
+				<xsl:value-of select="$declarationInstance/ancestor::child[1]/*[1]/@type"/>
+			</td>
+			<td class="comment">
+				<xsl:if test="@status = 'deprecated'">DEPRECATED<br/>
+				</xsl:if>
+				<xsl:call-template name="GetEnumerationValues">
+					<xsl:with-param name="declarationInstance" select="$declarationInstance"/>
+					<xsl:with-param name="engineeringInstance" select="$engineeringInstance"/>
+				</xsl:call-template>
+				<xsl:value-of select="../vecto:comment"/>
+				<!--<xsl:if test="$xsdInstance[@minOccurs=0]"><span class="optional">optional</span></xsl:if>-->
+				<xsl:if test="($declarationInstance)/ancestor::child[1]/(xs:element|xs:attribute)[@minOccurs=0]">
+					<span class="optionalDeclaration">optional in Declaration mode</span>
+				</xsl:if>
+				<xsl:if test="($engineeringInstance)/ancestor::child[1]/(xs:element|xs:attribute)[@minOccurs=0]">
+					<span class="optionalEngineering">optional in Engineering mode</span>
+				</xsl:if>
+				
+			</td>
+		</tr>
+	</xsl:template>
+	<!--
+
+=========================
+-->
+	<xsl:template name="GetEnumerationValues">
+		<xsl:param name="declarationInstance"/>
+		<xsl:param name="engineeringInstance"/>
+		<xsl:if test="count(($declarationInstance|$engineeringInstance)/ancestor::child[1]/type//xs:restriction/xs:enumeration) gt 0">
+			<div class="declaration">
+				<xsl:if test="count(($declarationInstance)/ancestor::child[1]/type//xs:restriction/xs:enumeration) gt 0">
+					Allowed values: <xsl:for-each select="$declarationInstance/ancestor::child[1]/type//xs:restriction/xs:enumeration">
+						<span class="enumEntry">&quot;<xsl:value-of select="@value"/>&quot;</span>
+						<xsl:if test="position() != last()">, </xsl:if>
+					</xsl:for-each>
+				</xsl:if>
+			</div>
+			<div class="engineering">
+				<xsl:if test="count(($engineeringInstance)/ancestor::child[1]/type//xs:restriction/xs:enumeration) gt 0">
+					Allowed values: <xsl:for-each select="$engineeringInstance/ancestor::child[1]/type//xs:restriction/xs:enumeration">
+						<span class="enumEntry">&quot;<xsl:value-of select="@value"/>&quot;</span>
+						<xsl:if test="position() != last()">, </xsl:if>
+					</xsl:for-each>
+				</xsl:if>
+			</div>
+			<br/>
+		</xsl:if>
+	</xsl:template>
+	<!--
+
+=========================
+-->
+	<xsl:template name="ParameterRange">
+		<xsl:variable name="restriction" select="../../../../xs:restriction[@base='xs:double' or @base='xs:int' or fn:starts-with(@base, 'tns:Double')]"/>
+		<td class="range">
+			<xsl:choose>
+				<xsl:when test="boolean($restriction/xs:minInclusive/@value)">
+				&#8805; <xsl:value-of select="$restriction/xs:minInclusive/@value"/>
+					<xsl:call-template name="RenderUnit"/>
+				</xsl:when>
+				<xsl:when test="boolean($restriction/xs:minExclusive/@value)">
+				&gt; <xsl:value-of select="$restriction/xs:minExclusive/@value"/>
+					<xsl:call-template name="RenderUnit"/>
+				</xsl:when>
+				<xsl:otherwise/>
+			</xsl:choose>
+			<xsl:choose>
+				<xsl:when test="boolean($restriction/xs:maxInclusive/@value)">
+				&#8804; <xsl:value-of select="$restriction/xs:maxInclusive/@value"/>
+					<xsl:call-template name="RenderUnit"/>
+				</xsl:when>
+				<xsl:when test="boolean($restriction/xs:maxExclusive/@value)">
+				&lt; <xsl:value-of select="$restriction/xs:maxExclusive/@value"/>
+					<xsl:call-template name="RenderUnit"/>
+				</xsl:when>
+				<xsl:otherwise/>
+			</xsl:choose>
+		</td>
+	</xsl:template>
+	<!--
+
+=========================
+-->
+	<xsl:template name="RenderUnit">
+		<xsl:if test="not(../vecto:unit = '-')">
+			<span class="unit">
+				<xsl:value-of select="../vecto:unit"/>
+			</span>
+		</xsl:if>
+	</xsl:template>
+	<xsl:template name="maximun">
+		<xsl:param name="list"/>
+		<xsl:for-each select="$list">
+			<xsl:sort select="." data-type="number" order="descending"/>
+			<xsl:if test="position()=1">
+				<xsl:value-of select="."/>
+			</xsl:if>
+		</xsl:for-each>
+	</xsl:template>
+	<xsl:template name="RenderLegend">
+		<div class="legend">
+			<div class="Declaration">
+				<span class="marker"/> Used only in Declaration mode</div>
+			<div class="Declaration Engineering">
+				<span class="marker"/> Used in Declaration and Engineering mode</div>
+			<div class="Engineering">
+				<span class="marker"/> Used only in Engineering Mode</div>
+		</div>
+	</xsl:template>
+	<xsl:template name="RenderXPath">
+		<xsl:param name="xpath"/>
+		<xsl:for-each select="$xpath">
+			<span>
+				<xsl:attribute name="class"><xsl:value-of select="@type"/></xsl:attribute>
+				<xsl:value-of select="text()"/>
+			</span>
+		</xsl:for-each>
+	</xsl:template>
+	<xsl:template name="RenderXPathOrder">
+		<xsl:param name="xpath"/>
+		<xsl:for-each select="$xpath">
+			<xsl:value-of select="format-number(./@position, '00')"/>#</xsl:for-each>
+	</xsl:template>
+	<!--
+		###### FUNCTIONS #######
+ -->
+	<xsl:function name="vecto:GetParameters">
+		<xsl:param name="rootNode"/>
+		<xsl:param name="mergedDocuments"/>
+		<xsl:variable name="nodes" select="vecto:GetContainingElements($rootNode,$mergedDocuments)"/>
+		<xsl:element name="childNodes">
+			<xsl:for-each select="$nodes">
+				<xsl:element name="child">
+					<xsl:attribute name="nodeName" select="@name"/>
+					<xsl:variable name="childType" select="vecto:GetTypeForElement(., $mergedDocuments)"/>
+					<xsl:sequence select="."/>
+					<xsl:element name="type">
+						<xsl:sequence select="$childType"/>
+					</xsl:element>
+					<xsl:if test="$childType">
+						<xsl:sequence select="vecto:GetParameters($childType, $mergedDocuments)"/>
+					</xsl:if>
+				</xsl:element>
+			</xsl:for-each>
+			<!--<xsl:if test="$childTypes">
+				<xsl:sequence select="vecto:GetParameters( $childTypes, $mergedDocuments )"/>
+			</xsl:if>-->
+		</xsl:element>
+		<!--<xsl:element name="types">
+			<xsl:sequence select="$mergedDocuments//xs:simpleType[@name=$nodes/@type]"/>
+		</xsl:element>-->
+	</xsl:function>
+	<!--
+
+-->
+	<xsl:function name="vecto:GetContainingElements">
+		<xsl:param name="node"/>
+		<xsl:param name="mergedDocuments"/>
+		<xsl:choose>
+			<xsl:when test="$node">
+				<xsl:variable name="childElementsAttributes" select="$node/(xs:element|xs:attribute)"/>
+				<xsl:variable name="nestedChildElemens" select="vecto:GetContainingElements($node/(xs:sequence|xs:choice), $mergedDocuments)"/>
+				<xsl:variable name="derivedElements" select="vecto:GetComplexContent($node/xs:complexContent|$node/xs:complexType/xs:complexContent, $mergedDocuments)"/>
+				<xsl:sequence select="$childElementsAttributes|$nestedChildElemens|$derivedElements"/>
+			</xsl:when>
+		</xsl:choose>
+	</xsl:function>
+	<!--
+
+-->
+	<xsl:function name="vecto:GetComplexContent">
+		<xsl:param name="complexContent"/>
+		<xsl:param name="mergedDocuments"/>
+		<xsl:if test="$complexContent">
+			<xsl:variable name="baseTypeName" select="replace($complexContent/xs:extension/@base,  '([a-z]*):(.*)', '$2')"/>
+			<xsl:variable name="baseType" select="$mergedDocuments//(xs:complexType|xs:simpleType)[@name=$baseTypeName]"/>
+			<xsl:variable name="extensions" select="$complexContent/xs:extension/(xs:attribute|(xs:sequence/(xs:element|xs:attribute)))"/>
+			<xsl:sequence select="vecto:GetContainingElements($baseType, $mergedDocuments)|$extensions"/>
+		</xsl:if>
+	</xsl:function>
+	<!--
+
+-->
+	<xsl:function name="vecto:GetTypeForElement">
+		<xsl:param name="element"/>
+		<xsl:param name="mergedDocuments"/>
+		<xsl:choose>
+			<xsl:when test="$element">
+				<xsl:variable name="typeNames" select="$element[@type]/@type"/>
+				<xsl:variable name="anonymousTypes" select="$element/(xs:complexType|xs:simpleType)"/>
+				<xsl:variable name="namedTypes" select="$mergedDocuments//(xs:complexType|xs:simpleType)[@name=replace($typeNames, '([a-z]*):(.*)', '$2')]"/>
+				<xsl:sequence select="$namedTypes | $anonymousTypes"/>
+			</xsl:when>
+		</xsl:choose>
+	</xsl:function>
+	<!--
+
+-->
+	<xsl:function name="vecto:GetXMLPath">
+		<xsl:param name="node"/>
+		<xsl:if test="$node">
+			<xsl:variable name="prefix" select="vecto:GetXPathPrefix($node)"/>
+			<xsl:variable name="position" select="$node/ancestor-or-self::child[1]/fn:position()"/>
+			<xsl:sequence select="vecto:GetXMLPath($node/ancestor-or-self::child[1]/../../node())"/>
+			<xsl:element name="xPathEntry">
+				<xsl:attribute name="type" select="$prefix"/>
+				<xsl:attribute name="position" select="count($node/ancestor-or-self::child[1]/preceding-sibling::*)"/>
+				<xsl:value-of select="$node/ancestor-or-self::child[1]/@nodeName"/>
+			</xsl:element>
+		</xsl:if>
+	</xsl:function>
+	<xsl:function name="vecto:GetXPathPrefix">
+		<xsl:param name="node"/>
+		<xsl:choose>
+			<xsl:when test="$node[1]/name() = 'xs:attribute'">attribute</xsl:when>
+			<xsl:when test="$node[1]/name() = 'xs:element'">element</xsl:when>
+			<xsl:otherwise>unknown</xsl:otherwise>
+		</xsl:choose>
+	</xsl:function>
+	<xsl:function name="vecto:ContainsParameter">
+		<xsl:param name="instance"/>
+		<xsl:param name="output"/>
+		<xsl:if test="fn:count($instance)">
+			<xsl:value-of select="$output"/>
+		</xsl:if>
+	</xsl:function>
+	<xsl:function name="vecto:SearchParameter">
+		<xsl:param name="instance"/>
+		<xsl:param name="parameterSet"/>
+		<xsl:sequence select="$parameterSet//xs:simpleType//vecto:description[vecto:parameterId=$instance]"/>
+	</xsl:function>
+</xsl:stylesheet>
+
+<!--
+
+#################################
+
+<?xml version="1.0" encoding="UTF-8"?>
+<childNodes>
+	<child nodeName="Vehicle">
+		<xs:element name="Vehicle">
+			<xs:complexType>
+				<xs:complexContent>
+					<xs:extension base="tns:VehicleDeclarationType"/>
+				</xs:complexContent>
+			</xs:complexType>
+		</xs:element>
+		<type>
+			<xs:complexType>
+				<xs:complexContent>
+					<xs:extension base="tns:VehicleDeclarationType"/>
+				</xs:complexContent>
+			</xs:complexType>
+		</type>
+		<childNodes>
+			<child nodeName="Manufacturer">
+				<xs:element name="Manufacturer" type="tns:ManufacturerType">
+					<xs:annotation>
+						<xs:documentation>P235</xs:documentation>
+					</xs:annotation>
+				</xs:element>
+				<type>
+					[...]
+				</type>
+				<childNodes/>
+			</child>
+			<child nodeName="ManufacturerAddress">
+				[...]
+			</child>
+			<child nodeName="VehicleCategory">
+				[...]
+			</child>
+			<child nodeName="AxleConfiguration">
+				[...]
+			</child>
+			[...]
+			<child nodeName="Components">
+				<xs:element name="Components">
+					[...]
+				</xs:element>
+				<type>
+					[...]
+				</type>
+				<childNodes>
+					<child nodeName="Engine">
+						<xs:element name="Engine" type="tns:EngineComponentDeclarationType"/>
+						<type>
+							[...]
+						</type>
+						<childNodes>
+							<child nodeName="Data">
+								<xs:element name="Data" type="tns:EngineDataDeclarationType"/>
+								<type>
+									[...]
+								</type>
+								<childNodes>
+									<child nodeName="Displacement">
+										[...]
+									</child>
+									<child nodeName="IdlingSpeed">
+										<xs:element name="IdlingSpeed" type="tns:EngineDeclaredSpeedType">
+											<xs:annotation>
+												<xs:documentation>P063 - [1/min]</xs:documentation>
+											</xs:annotation>
+										</xs:element>
+										<type>
+											<xs:simpleType name="EngineDeclaredSpeedType">
+												<xs:annotation>
+													<xs:appinfo>
+														<vectoParam:description>
+															<vectoParam:parameterId component="Engine">063</vectoParam:parameterId>
+															<vectoParam:parameterId component="Vehicle">198</vectoParam:parameterId>
+															<vectoParam:parameterId component="Engine">249</vectoParam:parameterId>
+															<vectoParam:unit>1/min</vectoParam:unit>
+														</vectoParam:description>
+													</xs:appinfo>
+													<xs:documentation>P063, P249 - [1/min]</xs:documentation>
+												</xs:annotation>
+												<xs:restriction base="xs:int">
+													<xs:minInclusive value="400"/>
+													<xs:maxInclusive value="10000"/>
+												</xs:restriction>
+											</xs:simpleType>
+										</type>
+										<childNodes/>
+									</child>
+									<child nodeName="RatedSpeed">
+										<xs:element name="RatedSpeed" type="tns:EngineDeclaredSpeedType">
+											<xs:annotation>
+												<xs:documentation>P249 - [1/min]</xs:documentation>
+											</xs:annotation>
+										</xs:element>
+										<type>
+											<xs:simpleType name="EngineDeclaredSpeedType">
+												<xs:annotation>
+													<xs:appinfo>
+														<vectoParam:description>
+															<vectoParam:parameterId component="Engine">063</vectoParam:parameterId>
+															<vectoParam:parameterId component="Vehicle">198</vectoParam:parameterId>
+															<vectoParam:parameterId component="Engine">249</vectoParam:parameterId>
+															<vectoParam:unit>1/min</vectoParam:unit>
+														</vectoParam:description>
+													</xs:appinfo>
+													<xs:documentation>P063, P249 - [1/min]</xs:documentation>
+												</xs:annotation>
+												<xs:restriction base="xs:int">
+													<xs:minInclusive value="400"/>
+													<xs:maxInclusive value="10000"/>
+												</xs:restriction>
+											</xs:simpleType>
+										</type>
+										<childNodes/>
+									</child>
+
+								</childNodes>
+							</child>
+							<child nodeName="Signature">
+								[...]
+							</child>
+						</childNodes>
+					</child>
+					<child nodeName="Gearbox">
+						[...]
+					</child>
+
+				</childNodes>
+			</child>
+		</childNodes>
+	</child>
+
+</childNodes>
+
+-->
\ No newline at end of file
diff --git a/Documentation/XML/VectoInput.1.0.png b/Documentation/XML/VectoInput.1.0.png
new file mode 100644
index 0000000000000000000000000000000000000000..3cf09474f4db41df70422e63fae45e56a762479a
Binary files /dev/null and b/Documentation/XML/VectoInput.1.0.png differ
diff --git a/Documentation/XML/VectoInputDeclaration.0.8.png b/Documentation/XML/VectoInputDeclaration.0.8.png
deleted file mode 100644
index f7ff7ef87482c7c57fbbc4b3c2995913d5b6313d..0000000000000000000000000000000000000000
Binary files a/Documentation/XML/VectoInputDeclaration.0.8.png and /dev/null differ
diff --git a/Documentation/XML/VectoInputDeclaration.1.0.pdf b/Documentation/XML/VectoInputDeclaration.1.0.pdf
deleted file mode 100644
index d11d573c8390c0bcaa09120cc3a2ea77e5d0deab..0000000000000000000000000000000000000000
Binary files a/Documentation/XML/VectoInputDeclaration.1.0.pdf and /dev/null differ
diff --git a/Documentation/XML/VectoInputDeclaration.1.0.png b/Documentation/XML/VectoInputDeclaration.1.0.png
deleted file mode 100644
index 7a0079c6c67fd0e2226014b6a0809bf1a268eafa..0000000000000000000000000000000000000000
Binary files a/Documentation/XML/VectoInputDeclaration.1.0.png and /dev/null differ
diff --git a/Documentation/XML/VectoOutputDeclaration.pdf b/Documentation/XML/VectoOutputDeclaration.pdf
deleted file mode 100644
index e687d784a0f25566e5fa2cdf2ed01be556355f34..0000000000000000000000000000000000000000
Binary files a/Documentation/XML/VectoOutputDeclaration.pdf and /dev/null differ
diff --git a/Documentation/XML/VectoOutputDeclaration.png b/Documentation/XML/VectoOutputDeclaration.png
deleted file mode 100644
index fa6d494682b47e5cfdeeb86dea98e1d48952c5f9..0000000000000000000000000000000000000000
Binary files a/Documentation/XML/VectoOutputDeclaration.png and /dev/null differ
diff --git a/Documentation/XML/VectoOutputDeclarationCOC.png b/Documentation/XML/VectoOutputDeclarationCOC.png
deleted file mode 100644
index cee59cb6938e482e7699714535032a0d4700838a..0000000000000000000000000000000000000000
Binary files a/Documentation/XML/VectoOutputDeclarationCOC.png and /dev/null differ
diff --git a/Documentation/XML/VectoOutputDeclarationCustomer.pdf b/Documentation/XML/VectoOutputDeclarationCustomer.pdf
deleted file mode 100644
index 4dfb2d684faae74a2e3e1f66a15f65e3bc61613c..0000000000000000000000000000000000000000
Binary files a/Documentation/XML/VectoOutputDeclarationCustomer.pdf and /dev/null differ
diff --git a/Documentation/XML/VectoParameters.html b/Documentation/XML/VectoParameters.html
index 2633e4e22c9a9ada609a76224dd5263d2a6cdff5..2973dbb3da367311232360990d834fe76cc25235 100644
--- a/Documentation/XML/VectoParameters.html
+++ b/Documentation/XML/VectoParameters.html
@@ -222,7 +222,7 @@ div.filter span.hidden span.icon {max-width: 256px;max-height: 256px;background-
 &lt;!--/*--&gt;</root><!--*/--></style></head><body>
 		<h1>Vecto Input Parameters</h1>
 		<div class="schemaVersion">Schema Version: 0.6 1.0 1.0</div>
-		<div class="generated">Generated: 19.12.2018 15:46</div>
+		<div class="generated">Generated: 03.01.2019 13:04</div>
 		<div class="nextParameter">Next free parameter: 281</div>
 		<table border="1" class="parameters">
 			<thead>
diff --git a/Documentation/XML/VectoVTPReport.png b/Documentation/XML/VectoVTPReport.png
deleted file mode 100644
index ba8b4c9ab5b686a1735edf08405d0c5ce769d583..0000000000000000000000000000000000000000
Binary files a/Documentation/XML/VectoVTPReport.png and /dev/null differ
diff --git a/Documentation/XML/custom.js b/Documentation/XML/custom.js
new file mode 100644
index 0000000000000000000000000000000000000000..950bbffd25bdd3c096c1c0dbae99e0a06c3d5696
--- /dev/null
+++ b/Documentation/XML/custom.js
@@ -0,0 +1,125 @@
+<!--/*--><root><![CDATA[<!--*/--> 
+$(document).ready(function() {
+	$('th.xmltype').append('<span class="expand"><a title="show XML Type"</span>').append('<span class="collapse"><a title="hide column"</span>')
+	$('th.xmlpath').append('<span class="expand"><a title="show XPath"</span>').append('<span class="collapse"><a title="hide column"</span>')
+	$('th.genericValues').append('<span class="expand"><a title="show Generic Values"</span>').append('<span class="collapse"><a title="hide column"</span>')
+	
+	$('table.parameters th span.expand').click(function(){
+		var $col = $(this).parent('th').index()
+		$(this).parents('th').removeClass('collapsed')
+		$(this).parents('table').find('tr>td:nth-child('+($col+1)+')').removeClass('collapsed')
+	})
+	$('table.parameters th span.collapse').click(function(){
+		var $col = $(this).parent('th').index()
+		$(this).parents('th').addClass('collapsed')
+		$(this).parents('table').find('tr>td:nth-child('+($col+1)+')').addClass('collapsed')
+	})
+	
+	
+	$('table.parameters th.parameterId').append('<span class="sortAsc"><a title="sort ascending"/></span><span class="sortDesc"><a title="sort descending"/></span>')
+	$('table.parameters th.component').append('<span class="sortAsc"><a title="sort ascending"/></span><span class="sortDesc"><a title="sort descending"/></span>')
+	$('table.parameters th.name').append('<span class="sortAsc"><a title="sort ascending"/></span><span class="sortDesc"><a title="sort descending"/></span>')
+	$('table.parameters th.xmlpath').append('<span class="sortAttrAsc"><a title="sort ascending"/></span><span class="sortAttrDesc"><a title="sort descending"/></span>')
+
+	$('table.parameters th span.sortAsc').click(function(){
+		var table = $(this).parents('table').eq(0)
+		var rows = table.find("tr:not(:has('th'))").toArray().sort(comparer($(this).parent('th').index()))
+		for (var i = 0; i < rows.length; i++){table.append(rows[i])}
+	})
+	$('table.parameters th span.sortDesc').click(function(){
+		var table = $(this).parents('table').eq(0)
+		var rows = table.find("tr:not(:has('th'))").toArray().sort(comparer($(this).parent('th').index()))
+		rows = rows.reverse()
+		for (var i = 0; i < rows.length; i++){table.append(rows[i])}
+	})
+	$('table.parameters th span.sortAttrAsc').click(function(){
+		var table = $(this).parents('table').eq(0)
+		var rows = table.find("tr:not(:has('th'))").toArray().sort(comparerAttr($(this).parent('th').index(), 'sorting'))
+		for (var i = 0; i < rows.length; i++){table.append(rows[i])}
+	})
+	$('table.parameters th span.sortAttrDesc').click(function(){
+		var table = $(this).parents('table').eq(0)
+		var rows = table.find("tr:not(:has('th'))").toArray().sort(comparerAttr($(this).parent('th').index(),'sorting'))
+		rows = rows.reverse()
+		for (var i = 0; i < rows.length; i++){table.append(rows[i])}
+	})
+	function comparer(index) {
+		return function(a, b) {
+			var valA = getCellValue(a, index), valB = getCellValue(b, index)
+			return $.isNumeric(valA) && $.isNumeric(valB) ? valA - valB : valA.localeCompare(valB)
+		}
+	}
+	function comparerAttr(index, attr) {
+		return function(a, b) {
+			var valA = getCellAttrValue(a, index, attr), valB = getCellAttrValue(b, index, attr)
+			return $.isNumeric(valA) && $.isNumeric(valB) ? valA - valB : valA.localeCompare(valB)
+		}
+	}
+	function getCellValue(row, index){ return $(row).children('td').eq(index).html() }
+	function getCellAttrValue(row, index, attr){ return $(row).children('td').eq(index).attr(attr) }
+	
+	
+	$('table.parameters').before('<div class="filter"><span class="filterDecl"><span class="icon"/>Declaration</span><span class="filterEng"><span class="icon"/>Engineering</span></div>')
+	$('.filter .filterEng').click(function() {
+		if ($(this).hasClass('hidden')) {
+			$('table.parameters tbody tr').filter(function() {
+				return ($(this).hasClass('Engineering') && !$(this).hasClass('Declaration') ) || $(this).attr('class') =='hideMode' || !$(this).attr('class')
+			}).removeClass('hideMode')
+			$('table.parameters td div.engineering').removeClass('hideMode')
+			$('span.optionalEngineering').show();
+		} else {
+			$('table.parameters tbody tr').filter(function() {
+				return ($(this).hasClass('Engineering') && !$(this).hasClass('Declaration') )  || !$(this).attr('class')
+			}).addClass('hideMode')	
+			$('table.parameters td div.engineering').addClass('hideMode')			
+			$('span.optionalEngineering').hide();			
+		}
+		$(this).toggleClass('hidden')
+	})
+	$('.filter .filterDecl').click(function() {
+		if ($(this).hasClass('hidden')) {
+			$('table.parameters tbody tr').filter(function() {
+				return $(this).hasClass('Declaration') 
+			}).removeClass('hideMode')
+		} else {
+			$('table.parameters tbody tr').filter(function() {
+				return $(this).hasClass('Declaration')
+			}).addClass('hideMode')			
+		}
+		$(this).toggleClass('hidden')
+	})
+	
+	var components = $('table.parameters tbody td.component').map(function(idx, el) {return $(el).html()}).toArray()
+	components = components.sort().filter(function(el,i,a){if(i==a.indexOf(el))return 1;return 0})
+	$('table.parameters').before('<div class="filter">'+ components.map(function(c) { return '<span class="filterComp"><span class="icon"/>' + c + '</span>'}).join('') + '<span class="filterAll hidden"><span class="icon"/>Hide All</span><span class="showAll"><span class="icon"/>Show All</span>' + '</div>')
+	$('div.filter .filterComp').click(function() {
+		var searchText = $(this).text();
+		if ($(this).hasClass('hidden')) {
+			$('table.parameters tbody tr').filter(function() {
+				return $(this).find('td.component').text() == searchText
+			}).removeClass('hideComp')
+		} else {
+			$('table.parameters tbody tr').filter(function() {
+				return $(this).find('td.component').text() == searchText
+			}).addClass('hideComp')
+		}
+		$(this).toggleClass('hidden')
+	})
+	$('div.filter .filterAll').click(function() {
+		$('table.parameters tbody tr').addClass('hideComp')
+		$('div.filter .filterComp').addClass('hidden')
+	})
+	$('div.filter .showAll').click(function() {
+		$('table.parameters tbody tr').removeClass('hideComp')
+		$('div.filter .filterComp').removeClass('hidden')
+	})
+	
+	// initial view
+	$('table.parameters th span.sortAttrAsc').trigger('click')
+	$('div.filter span.filterEng').trigger('click')
+	$('th.genericValues span.collapse').trigger('click')
+	$('th.xmlpath span.collapse').trigger('click')
+	$('th.xmltype span.collapse').trigger('click')
+})
+
+<!--/*-->]]></root><!--*/-->
\ No newline at end of file
diff --git a/Documentation/XML/style.css b/Documentation/XML/style.css
new file mode 100644
index 0000000000000000000000000000000000000000..4e5afbc8dd1a294e5783947a4511de7ffd0d3339
--- /dev/null
+++ b/Documentation/XML/style.css
@@ -0,0 +1,217 @@
+<!--/*--><root><![CDATA[<!--*/--> 
+body
+{
+	background-color: #ffffff;
+	color: #000000;
+	font-family: "Arial", sans-serif;
+}
+
+body
+{
+	background-color: #ffffff;
+	color: #000000;
+	font-family: "Arial", sans-serif;
+	position: relative;
+}
+
+table {
+	border: 1px solid black;
+	border-collapse: collapse;
+	margin: 1em 0;
+	position: relative;
+}
+tr, th { 
+	page-break-inside: avoid;
+	position: relative;
+}
+tr th, tr td {
+	page-break-inside: avoid;
+	position: relative;
+}
+th {
+	padding: 3px 5px;
+	background: #000;
+	color: #fff;
+	white-space:nowrap;
+	position: relative;
+}
+td {
+	padding: 3px 5px;
+}
+td.parameterId {
+	text-align: center;
+}
+td.range {
+	text-align: right;
+	white-space: nowrap;
+}
+/*th.xmlpath, td.xmlpath {
+	display: none;
+}*/
+tr.Declaration td.parameterId, div.legend .Declaration span.marker {
+	background: #A8FFAE; /* green */
+}
+tr.Engineering td.parameterId,  div.legend .Engineering span.marker {
+	background: #FFF6C2;  /* blue */
+}
+tr.Declaration.Engineering td.parameterId,  div.legend .Declaration.Engineering span.marker{
+	background: #C2DCFF;  /* orange*/
+}
+tr.deprecated, tr.deprecated td.parameterId {
+	background:#ccc !important; 
+	color: #555;
+}
+td.unit {
+	text-align: center;
+}
+td.min, td.max {
+	text-align: right;
+	white-space: nowrap;
+}
+td.xmlpath {
+	white-space: nowrap;
+}
+td.genericValues span {
+	white-space: nowrap;
+}
+td.name {
+	text-transform: capitalize;
+}
+span.enumEntry {
+	white-space: nowrap;
+}
+div.nextParameter {
+	float: right;
+	text-align: right;
+}
+div.legend {
+	border: 1px solid black;
+	overflow: hidden;
+	margin: 1em 0;
+	padding: 7px;
+}
+div.legend div {
+	width: 33%;
+	float: left;
+}
+span.marker {
+	display: inline-block; 
+	height: 1em; 
+	width: 1em;
+	margin-right: 0.5em;
+}
+span.unit {
+	padding-left: 0.3em;
+}
+span.optionalEngineering {
+background: #FFF6C2;  /* blue */
+}
+span.optionalDeclaration {
+background: #A8FFAE; /* green */
+}
+td.xmlpath span.element::before {
+  content: " / ";
+}
+td.xmlpath span.attribute::before {
+  content: " / @";
+}
+
+th span.sortAsc,
+th span.sortAttrAsc {
+	margin-left: 3px;
+	cursor: pointer;
+	display: inline-block;
+    width: 16px;
+    height: 16px;
+    background-size: contain;
+    background-repeat: no-repeat;
+    text-indent: -1000em;
+	margin-left: 10px;
+}
+th span.sortDesc,
+th span.sortAttrDesc,
+th span.expand,
+th span.collapse {
+	margin-left: 3px;
+	cursor: pointer;
+	display: inline-block;
+    width: 16px;
+    height: 16px;
+    background-size: contain;
+    background-repeat: no-repeat;
+    text-indent: -1000em;
+}
+
+div.filter {
+	margin: 3px 0px;
+	border: 1px solid black;
+	display: inline-block;
+}
+div.filter span {
+	padding: 8px;
+	display: inline-block;
+	cursor: pointer;
+}
+
+th span.collapse,
+th span.expand {
+	position: absolute;
+	left: 5px;
+	top: 50%;
+	margin-top: -8px;
+}
+
+
+table.parameters tbody tr.hideMode,
+table.parameters tbody tr div.hideMode,
+table.parameters tbody tr.hideComp  {
+	display:none
+}
+
+table.parameters  th.collapsed span.collapse {
+	display: none;
+}
+table.parameters  th span.expand {
+	display: none;
+}
+table.parameters  th.collapsed span.expand {
+	display: inline-block;
+}
+span.collapse a, 
+span.expand a,
+span.sortDesc a, span.sortAttrDesc a,
+span.sortAsc a, span.sortAttrAsc  a {
+    display: block;
+    width: 100%;
+    height: 100%;
+	}
+
+table.parameters th.collapsed, 
+table.parameters td.collapsed {
+	min-width: 20px;
+	text-indent: -99999em;
+}
+
+div.filter span.icon {
+	display: inline-block;
+	width: 16px;
+	height: 16px;
+	padding: 0;
+    background-size: contain;
+    margin-right: 3px;
+}
+
+span.filterComp {
+	width: 16em;
+	white-space: nowrap;
+}
+
+span.sortDesc, span.sortAttrDesc {max-width: 256px;max-height: 256px;background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3NC42NCA0NzQuNjQiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ3NC42NCA0NzQuNjQ7IiB4bWw6c3BhY2U9InByZXNlcnZlIiB3aWR0aD0iMzJweCIgaGVpZ2h0PSIzMnB4Ij4KPGc+Cgk8Zz4KCQk8Zz4KCQkJPHBhdGggZD0iTTIzNy4zMiwwLjAxNkMxMDYuMjQ5LDAuMDE2LDAsMTA2LjIzMywwLDIzNy4zMzZzMTA2LjI4MSwyMzcuMjg4LDIzNy4zMiwyMzcuMjg4ICAgICBzMjM3LjMyLTEwNi4yNDksMjM3LjMyLTIzNy4zMlMzNjguMzkxLDAuMDE2LDIzNy4zMiwwLjAxNnogTTIzNy4zMiw0NDIuODQxYy0xMTMuMzM2LDAtMjA1LjUzNy05Mi4xNjktMjA1LjUzNy0yMDUuNTY5ICAgICBTMTIzLjk4MywzMS43MzUsMjM3LjMyLDMxLjczNXMyMDUuNTM3LDkyLjIzMywyMDUuNTM3LDIwNS41MzdTMzUwLjY4OCw0NDIuODQxLDIzNy4zMiw0NDIuODQxeiIgZmlsbD0iI0ZGRkZGRiIvPgoJCQk8cGF0aCBkPSJNMjQ3LjU1NCwxNjEuNTM0Yy0zLjExNS0zLjExNS03LjE4My00LjYwOC0xMS4yODMtNC42MDhzLTguMTY4LDEuNDk0LTExLjI4Myw0LjYwOCAgICAgTDEyMS45MTgsMjY0LjYwNWMtNi4xOTgsNi4xOTgtNi4xOTgsMTYuMjczLDAsMjIuNDdjNi4xOTgsNi4xOTgsMTYuMjczLDYuMTk4LDIyLjQ3LDBsOTEuODgzLTkxLjg4M2w5MS44ODMsOTEuODgzICAgICBjNi4xOTgsNi4xOTgsMTYuMjczLDYuMTk4LDIyLjQ3LDBjNi4xOTgtNi4xOTgsNi4xOTgtMTYuMjczLDAtMjIuNDdMMjQ3LjU1NCwxNjEuNTM0eiIgZmlsbD0iI0ZGRkZGRiIvPgoJCTwvZz4KCTwvZz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K)}
+span.sortAsc, span.sortAttrAsc {max-width: 256px;max-height: 256px;background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ1My44MzQgNDUzLjgzNCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDUzLjgzNCA0NTMuODM0OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjMycHgiIGhlaWdodD0iMzJweCI+CjxnPgoJPGc+CgkJPGc+CgkJCTxnPgoJCQkJPHBhdGggZD0iTTIyNi45MzIsMEMxMDEuNjI1LDAsMC4wMywxMDEuNTk1LDAuMDMsMjI2LjkwMkMwLDM1Mi4yNjksMTAxLjU5NSw0NTMuODM0LDIyNi45MzIsNDUzLjgzNCAgICAgIGMxMjUuMzA3LDAsMjI2Ljg3MS0xMDEuNTk1LDIyNi44NzEtMjI2LjkwMkM0NTMuODM0LDEwMS41OTUsMzUyLjIzOSwwLDIyNi45MzIsMHogTTIyNi45MzIsNDIzLjQ2NSAgICAgIGMtMTA4LjM0NCwwLTE5Ni41MDItODguMTU4LTE5Ni41MDItMTk2LjUwMlMxMTguNTg4LDMwLjQ2LDIyNi45MzIsMzAuNDZjMTA4LjM0NC0wLjAzLDE5Ni40NzIsODguMTI4LDE5Ni40NzIsMTk2LjUwMiAgICAgIEM0MjMuNDM0LDMzNS4yNzYsMzM1LjI3Niw0MjMuNDY1LDIyNi45MzIsNDIzLjQ2NXoiIGZpbGw9IiNGRkZGRkYiLz4KCQkJCTxwYXRoIGQ9Ik0zMTMuNzIzLDE3Ny4xOTlsLTg3Ljg4NSw4Ny45MTVsLTg3Ljg4NS04Ny45MTVjLTUuOTI4LTUuOTI4LTE1LjU2NS01LjkyOC0yMS40OTIsMCAgICAgIHMtNS45MjgsMTUuNTY1LDAsMjEuNDkybDk4LjU4NSw5OC41ODVjMi45NzksMy4wNCw2LjkwMSw0LjQzOCwxMC43OTIsNC40MzhjMy45MjIsMCw3LjgxMy0xLjQ5LDEwLjc5Mi00LjQzOGw5OC41NTUtOTguNTg1ICAgICAgYzUuOTI4LTUuOTI4LDUuOTI4LTE1LjU2NSwwLTIxLjQ5MlMzMTkuNjUsMTcxLjI3MSwzMTMuNzIzLDE3Ny4xOTl6IiBmaWxsPSIjRkZGRkZGIi8+CgkJCTwvZz4KCQk8L2c+Cgk8L2c+Cgk8Zz4KCTwvZz4KCTxnPgoJPC9nPgoJPGc+Cgk8L2c+Cgk8Zz4KCTwvZz4KCTxnPgoJPC9nPgoJPGc+Cgk8L2c+Cgk8Zz4KCTwvZz4KCTxnPgoJPC9nPgoJPGc+Cgk8L2c+Cgk8Zz4KCTwvZz4KCTxnPgoJPC9nPgoJPGc+Cgk8L2c+Cgk8Zz4KCTwvZz4KCTxnPgoJPC9nPgoJPGc+Cgk8L2c+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==)}
+
+span.expand {max-width: 256px;max-height: 256px;background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjEyOHB4IiBoZWlnaHQ9IjEyOHB4IiB2aWV3Qm94PSIwIDAgNjEyIDYxMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNjEyIDYxMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxnIGlkPSJSaWdodCI+CgkJPGc+CgkJCTxwYXRoIGQ9Ik0yNzcuNTgsMTc5LjY3OWwtMC4wNTcsMC4wNzdjLTUuMTI1LTQuNzA1LTExLjg1Ny03LjYzMS0xOS4zMzUtNy42MzFjLTE1LjgzNSwwLTI4LjY4OCwxMi44NTItMjguNjg4LDI4LjY4OCAgICAgYzAsOC4zNzcsMy42MzQsMTUuODM1LDkuMzUyLDIxLjA3NmwtMC4wNTcsMC4wNzdMMzMwLjQ4LDMwNmwtOTEuNjg2LDg0LjA1NWwwLjA1NywwLjA3NmMtNS43MTgsNS4yMjEtOS4zNTIsMTIuNjgtOS4zNTIsMjEuMDU3ICAgICBjMCwxNS44MzYsMTIuODUyLDI4LjY4OCwyOC42ODgsMjguNjg4YzcuNDc4LDAsMTQuMjEtMi45MjYsMTkuMzM1LTcuNjExbDAuMDU3LDAuMDc2bDExNC43NS0xMDUuMTg4ICAgICBjNS45MS01LjQ1MSw5LjI5NS0xMy4xMDEsOS4yOTUtMjEuMTUycy0zLjM4NS0xNS43MDItOS4yOTUtMjEuMTUyTDI3Ny41OCwxNzkuNjc5eiBNMzA2LDBDMTM3LjAxMiwwLDAsMTM3LjAxMiwwLDMwNiAgICAgczEzNy4wMTIsMzA2LDMwNiwzMDZzMzA2LTEzNy4wMTIsMzA2LTMwNlM0NzQuOTg4LDAsMzA2LDB6IE0zMDYsNTU0LjYyNUMxNjguOTEyLDU1NC42MjUsNTcuMzc1LDQ0My4wODgsNTcuMzc1LDMwNiAgICAgUzE2OC45MTIsNTcuMzc1LDMwNiw1Ny4zNzVTNTU0LjYyNSwxNjguOTEyLDU1NC42MjUsMzA2UzQ0My4wODgsNTU0LjYyNSwzMDYsNTU0LjYyNXoiIGZpbGw9IiNGRkZGRkYiLz4KCQk8L2c+Cgk8L2c+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==)}
+span.collapse {max-width: 256px;max-height: 256px;background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjI1NnB4IiBoZWlnaHQ9IjI1NnB4IiB2aWV3Qm94PSIwIDAgNjEyIDYxMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNjEyIDYxMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxnIGlkPSJMZWZ0Ij4KCQk8Zz4KCQkJPHBhdGggZD0iTTM1My44MTIsMTcyLjEyNWMtNy40NzgsMC0xNC4yMSwyLjkyNi0xOS4zMzUsNy42MTJsLTAuMDU4LTAuMDc3TDIxOS42NywyODQuODQ4Yy01LjkxLDUuNDUxLTkuMjk1LDEzLjEwMS05LjI5NSwyMS4xNTIgICAgIHMzLjM4NSwxNS43MDEsOS4yOTUsMjEuMTUyTDMzNC40Miw0MzIuMzRsMC4wNTgtMC4wNzZjNS4xMjUsNC42ODYsMTEuODU3LDcuNjExLDE5LjMzNSw3LjYxMSAgICAgYzE1LjgzNiwwLDI4LjY4OC0xMi44NTIsMjguNjg4LTI4LjY4OGMwLTguMzU3LTMuNjM0LTE1LjgzNi05LjM1My0yMS4wNzZsMC4wNTgtMC4wNzZMMjgxLjUyLDMwNmw5MS42ODUtODQuMDU0bC0wLjA1OC0wLjA3NyAgICAgYzUuNzE5LTUuMjIxLDkuMzUzLTEyLjY4LDkuMzUzLTIxLjA1N0MzODIuNSwxODQuOTc3LDM2OS42NDgsMTcyLjEyNSwzNTMuODEyLDE3Mi4xMjV6IE0zMDYsMEMxMzcuMDEyLDAsMCwxMzcuMDEyLDAsMzA2ICAgICBzMTM3LjAxMiwzMDYsMzA2LDMwNnMzMDYtMTM3LjAxMiwzMDYtMzA2UzQ3NC45ODgsMCwzMDYsMHogTTMwNiw1NTQuNjI1QzE2OC45MTIsNTU0LjYyNSw1Ny4zNzUsNDQzLjA4OCw1Ny4zNzUsMzA2ICAgICBTMTY4LjkxMiw1Ny4zNzUsMzA2LDU3LjM3NVM1NTQuNjI1LDE2OC45MTIsNTU0LjYyNSwzMDZTNDQzLjA4OCw1NTQuNjI1LDMwNiw1NTQuNjI1eiIgZmlsbD0iI0ZGRkZGRiIvPgoJCTwvZz4KCTwvZz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K)}
+
+div.filter span span.icon {max-width: 256px;max-height: 256px;background-image: url(data:image/svg+xml;utf8;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjIzMS43MDFweCIgaGVpZ2h0PSIyMjMuMTZweCIgdmlld0JveD0iMCAwIDIzMS43MDEgMjIzLjE2IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyMzEuNzAxIDIyMy4xNiINCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQ5Ljc1NCwxMDAuNDZjMS41MjctMy40NjQsMy4yNDYtMy42NzgsNi4yNjMtMS45MzgNCgkJCQljMTYuNzQ3LDkuNjY5LDI0LjIwOSwxMy44Niw0MS4wNDgsMjMuMzY4YzEuMTksMC42NywyLjM5MiwxLjMyLDMuNzM0LDIuMDZDMTQ1LjI4OSw2My40OTQsMTYzLjMwOSwzOS4xODgsMjI4LjcxNywwDQoJCQkJYzEuMDczLDEuMzM0LDEuOTc3LDIuNDUzLDIuOTg0LDMuNzA3Yy0wLjY2NiwwLjc2LTEuMTY1LDEuNDU3LTEuNzg2LDIuMDE5Yy02MS41MTgsNTUuNTg2LTc2Ljk5Niw5MS4yNjktMTEzLjM1MiwxNjUuNDM3DQoJCQkJYy0zLjk3OSw4LjExOS00LjE3NCw3Ljg4NC05Ljg1NiwxLjI2M2MtMjEuNTEzLTI1LjA3LTMzLjY5OC00NC44MjEtNTUuMjY5LTY5Ljg0N0M1MC44NywxMDEuOTE4LDUwLjM1MSwxMDEuMjEzLDQ5Ljc1NCwxMDAuNDZ6Ig0KCQkJCS8+DQoJCTwvZz4NCgk8L2c+DQo8L2c+DQo8cGF0aCBkPSJNMTg0Ljg1MSw3NC40MDNjLTAuOTc4LDEuMzM3LTEuOTQ2LDIuNjg3LTIuOTE2LDQuMDM3djEwNC40NzZjMCw1LjEwNS00LjEzOSw5LjI0NC05LjI0NCw5LjI0NEg0MC4yNDQNCgljLTUuMTA1LDAtOS4yNDQtNC4xMzktOS4yNDQtOS4yNDRWNTAuNDdjMC01LjEwNSw0LjEzOS05LjI0NCw5LjI0NC05LjI0NGgxMTIuODEzYzEwLjE2NS0xMC42MjIsMjAuMzQ5LTIwLjQwOCwzMC42NTItMjkuNDU0DQoJYy0zLjUwNC0wLjk5OS03LjE5OC0xLjU0Ni0xMS4wMi0xLjU0Nkg0MC4yNDRDMTguMDU0LDEwLjIyNiwwLDI4LjI3OSwwLDUwLjQ3djEzMi40NDZjMCwyMi4xOSwxOC4wNTQsNDAuMjQ0LDQwLjI0NCw0MC4yNDRIMTcyLjY5DQoJYzIyLjE5LDAsNDAuMjQ0LTE4LjA1NCw0MC4yNDQtNDAuMjQ0VjUwLjQ3YzAtMy40MTUtMC40MzEtNi43MzEtMS4yMzUtOS45QzIwMi4zNTYsNTEuNDM4LDE5My4zOSw2Mi43MjcsMTg0Ljg1MSw3NC40MDN6Ii8+DQo8L3N2Zz4=)}
+div.filter span.hidden span.icon {max-width: 256px;max-height: 256px;background-image: url(data:image/svg+xml;utf8;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjIzMS43MDFweCIgaGVpZ2h0PSIyMjMuMTZweCIgdmlld0JveD0iMCAwIDIzMS43MDEgMjIzLjE2IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyMzEuNzAxIDIyMy4xNiINCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8cGF0aCBkPSJNMTcyLjY5LDQxLjIyNmM1LjEwNCwwLDkuMjQ0LDQuMTM5LDkuMjQ0LDkuMjQ0djEzMi40NDZjMCw1LjEwNS00LjE0LDkuMjQ0LTkuMjQ0LDkuMjQ0SDQwLjI0NA0KCWMtNS4xMDUsMC05LjI0NC00LjEzOS05LjI0NC05LjI0NFY1MC40N2MwLTUuMTA1LDQuMTM5LTkuMjQ0LDkuMjQ0LTkuMjQ0SDE3Mi42OSBNMTcyLjY5LDEwLjIyNkg0MC4yNDQNCglDMTguMDU0LDEwLjIyNiwwLDI4LjI3OSwwLDUwLjQ3djEzMi40NDZjMCwyMi4xOSwxOC4wNTQsNDAuMjQ0LDQwLjI0NCw0MC4yNDRIMTcyLjY5YzIyLjE5LDAsNDAuMjQ0LTE4LjA1NCw0MC4yNDQtNDAuMjQ0VjUwLjQ3DQoJQzIxMi45MzUsMjguMjc5LDE5NC44ODEsMTAuMjI2LDE3Mi42OSwxMC4yMjZMMTcyLjY5LDEwLjIyNnoiLz4NCjwvc3ZnPg==)}
+<!--/*-->]]></root><!--*/-->
diff --git a/VectoCore/VectoXML.spp b/VectoCore/VectoXML.spp
index a51ddebc02fb4c7ee78e0e47baf9ace75c8a3648..98bcb63b323626de4225507ef77ec350a99531a1 100644
--- a/VectoCore/VectoXML.spp
+++ b/VectoCore/VectoXML.spp
@@ -26,7 +26,7 @@
 		<File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\vecto_vehicle-sample_FULL_updated.xml" HomeFolder="Yes"/>
 	</Folder>
 	<Folder FolderName="XSL Files" ExtStr="xsl;xslt">
-		<File FilePath="E:\QUAM\Workspace\VECTO_API\API\RenderTable.xslt" HomeFolder="Yes"/>
+		<File FilePath="E:\QUAM\Workspace\VECTO_quam\Documentation\XML\RenderTable.xslt" HomeFolder="Yes"/>
 		<File FilePath="E:\QUAM\Workspace\VECTO_quam\VectoCommon\VectoHashing\Resources\XSLT\SortInputData.xslt" HomeFolder="Yes"/>
 	</Folder>
 	<Folder FolderName="XQuery Files" ExtStr="xq;xql;xquery;xqu"/>