parallel ip - initial checkin

Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/.project b/.project
new file mode 100644
index 0000000..ea8c43b
--- /dev/null
+++ b/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.utils.functionnormalizer.aggregator</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>
diff --git a/about.html b/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/jenkins.build.config.xml b/jenkins.build.config.xml
new file mode 100644
index 0000000..1ca796e
--- /dev/null
+++ b/jenkins.build.config.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2016 - Loetz GmbH&Co.KG                                    -->
+<!--# All rights reserved. This program and the accompanying materials 		 -->
+<!--# are made available under the terms of the Eclipse Public License v1.0  -->
+<!--# which accompanies this distribution, and is available at               -->
+<!--# http://www.eclipse.org/legal/epl-v10.html                              -->
+<!--#                                                                        -->
+<!--# Contributors:                                                          -->
+<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation                           -->
+<!--#======================================================================= -->
+<!--# Module specific parameters for the Jenkins Job 						 -->
+<!--#======================================================================= -->
+
+<jenkins>
+	<!-- DO NOT EDIT BELOW THIS LINE -->
+        <jenkins.build.dependencies>
+                <jenkins.build.dependency>org.eclipse.osbp.dsl</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.runtime</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.i18n</jenkins.build.dependency>
+        </jenkins.build.dependencies>
+</jenkins>
diff --git a/notice.html b/notice.html
new file mode 100644
index 0000000..c3d34c3
--- /dev/null
+++ b/notice.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 9, 2014</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/org.eclipse.osbp.utils.functionnormalizer.feature/.project b/org.eclipse.osbp.utils.functionnormalizer.feature/.project
new file mode 100644
index 0000000..cdcf4f1
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.feature/.project
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.utils.functionnormalizer.feature</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.utils.functionnormalizer.feature/LICENSE.txt b/org.eclipse.osbp.utils.functionnormalizer.feature/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.feature/LICENSE.txt
@@ -0,0 +1,161 @@
+Eclipse Public License -v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION
+OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.
+A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate
+modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of
+its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute
+and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code
+form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the
+combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not
+apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no
+assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity
+based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property
+rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the
+Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to
+grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including
+warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any
+other party; and
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it
+in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and
+the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes
+the Program in a commercial product offering should do so in a manner which does not create potential liability for
+other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions
+brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual
+property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the
+Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may
+ participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is
+then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone.
+Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to
+those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result,
+the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for
+determining the appropriateness of using and distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance
+with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such
+Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such
+noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution
+of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses
+ granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement
+is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish
+new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the
+right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including Contributions) may always be
+distributed subject to the version of the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the
+new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States
+of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause
+of action arose. Each party waives its rights to a jury trial in any resulting litigation.
\ No newline at end of file
diff --git a/org.eclipse.osbp.utils.functionnormalizer.feature/build.properties b/org.eclipse.osbp.utils.functionnormalizer.feature/build.properties
new file mode 100644
index 0000000..b8920ff
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.feature/build.properties
@@ -0,0 +1,2 @@
+bin.includes = license.html,  epl-v10.html,  feature.xml,\
+               feature.properties
diff --git a/org.eclipse.osbp.utils.functionnormalizer.feature/epl-v10.html b/org.eclipse.osbp.utils.functionnormalizer.feature/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.feature/epl-v10.html
@@ -0,0 +1,259 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Public License - Version 1.0</title>
+<style type="text/css">
+  body {
+    size: 8.5in 11.0in;
+    margin: 0.25in 0.5in 0.25in 0.5in;
+    tab-interval: 0.5in;
+    }
+  p {  	
+    margin-left: auto;
+    margin-top:  0.5em;
+    margin-bottom: 0.5em;
+    }
+  p.list {
+  	margin-left: 0.5in;
+    margin-top:  0.05em;
+    margin-bottom: 0.05em;
+    }
+  </style>
+
+</head>
+
+<body lang="EN-US">
+
+<h2>Eclipse Public License - v 1.0</h2>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.utils.functionnormalizer.feature/feature.properties b/org.eclipse.osbp.utils.functionnormalizer.feature/feature.properties
new file mode 100644
index 0000000..1cdffa7
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.feature/feature.properties
Binary files differ
diff --git a/org.eclipse.osbp.utils.functionnormalizer.feature/feature.xml b/org.eclipse.osbp.utils.functionnormalizer.feature/feature.xml
new file mode 100644
index 0000000..6063ffc
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.feature/feature.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# All rights reserved. This program and the accompanying materials -->
+<!--# are made available under the terms of the Eclipse Public License v1.0 -->
+<!--# which accompanies this distribution, and is available at -->
+<!--# http://www.eclipse.org/legal/epl-v10.html -->
+<!--# -->
+<!--# Contributors: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<feature
+        id="org.eclipse.osbp.utils.functionnormalizer.feature"
+        label="%featureName"
+        version="0.9.0.qualifier"
+        provider-name="%providerName">
+        
+    <description>
+        %description
+    </description>
+        
+    <copyright>
+        %copyright
+    </copyright>
+        
+    <license url="%licenseURL">
+        %license
+    </license>
+        
+    <plugin
+        id="org.eclipse.osbp.utils.functionnormalizer"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+    <plugin
+        id="org.eclipse.osbp.utils.functionnormalizer.tests"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+        
+</feature>
diff --git a/org.eclipse.osbp.utils.functionnormalizer.feature/license.html b/org.eclipse.osbp.utils.functionnormalizer.feature/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.feature/license.html
@@ -0,0 +1,164 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>February 1, 2011</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY "CONTENT").  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse
+ Foundation is provided to you under the terms and conditions of the 
+Eclipse Public License Version 1.0
+   ("EPL").  A copy of the EPL is provided with this Content and is also
+ available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, 
+documentation and other files maintained in the Eclipse Foundation 
+source code
+   repository ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to 
+facilitate delivering, extending, and upgrading the Content.  Typical 
+modules may include plug-ins ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or 
+Fragments and associated material.  Each Feature may be packaged as a 
+sub-directory in a directory named "features".  Within a Feature, files 
+named "feature.xml" may contain a list of the names and version numbers 
+of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features ("Included 
+Features"). Within a Feature, files named "feature.xml" may contain a 
+list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be 
+contained in files named "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  Abouts and Feature Licenses may be located in any
+ directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named "src" of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is 
+installed using the Provisioning Technology (as defined below), you must
+ agree to a license ("Feature Update License") during the
+installation process.  If the Feature contains Included Features, the 
+Feature Update License should either provide you with the terms and 
+conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be 
+found in the "license" property of files named "feature.properties" 
+found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the 
+terms and conditions (or references to such terms and conditions) that 
+govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER 
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.
+  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND 
+CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, 
+or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions 
+govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, 
+examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). This 
+capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about 
+packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   ("Specification").</p>
+
+<p>You may use Provisioning Technology to allow other parties to install
+ Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to
+ be presented to, and accepted by, the users of the Provisioning 
+Technology
+   in accordance with the Specification. By using Provisioning 
+Technology in such a manner and making it available in accordance with 
+the
+   Specification, you further acknowledge your agreement to, and the 
+acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") with the intent of installing, 
+extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology 
+may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user 
+the terms and conditions that govern the use of the Installable
+       Software ("Installable Software Agreement") and such Installable 
+Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable 
+Software Agreement must inform the user of the terms and conditions that
+ govern
+       the Installable Software and must solicit acceptance by the end 
+user in the manner prescribed in such Installable Software Agreement. 
+Upon such
+       indication of agreement by the user, the provisioning Technology 
+will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are
+ currently may have restrictions on the import, possession, and use, 
+and/or re-export to
+   another country, of encryption software. BEFORE using any encryption 
+software, please check the country's laws, regulations and policies 
+concerning the import,
+   possession, or use, and re-export of encryption software, to see if 
+this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.utils.functionnormalizer.feature/pom.xml b/org.eclipse.osbp.utils.functionnormalizer.feature/pom.xml
new file mode 100644
index 0000000..2ef42a5
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.feature/pom.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# All rights reserved. This program and the accompanying materials -->
+<!--# are made available under the terms of the Eclipse Public License v1.0 -->
+<!--# which accompanies this distribution, and is available at -->
+<!--# http://www.eclipse.org/legal/epl-v10.html -->
+<!--# -->
+<!--# Contributors: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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>
+  <artifactId>org.eclipse.osbp.utils.functionnormalizer.feature</artifactId>
+  <packaging>eclipse-feature</packaging>
+  <parent>
+  	<groupId>org.eclipse.osbp.utils.functionnormalizer</groupId>
+  	<artifactId>org.eclipse.osbp.utils.functionnormalizer.aggregator</artifactId>
+  	<version>0.9.0-SNAPSHOT</version>
+  	<relativePath>..</relativePath>
+  </parent>
+  
+  	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.eclipse.tycho.extras</groupId>
+				<artifactId>tycho-source-feature-plugin</artifactId>
+				<version>${tychoExtrasVersion}</version>
+				<executions>
+					<execution>
+						<id>source-feature</id>
+						<phase>package</phase>
+						<goals>
+							<goal>source-feature</goal>
+						</goals>
+					</execution>
+				</executions>
+				<configuration>
+					<labelSuffix> (source)</labelSuffix>
+				</configuration>
+			</plugin>
+			<plugin>
+				<!-- workaround while bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=398250 
+					is not fixed -->
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-p2-plugin</artifactId>
+				<version>${tycho-version}</version>
+				<executions>
+					<execution>
+						<id>attached-p2-metadata</id>
+						<phase>package</phase>
+						<goals>
+							<goal>p2-metadata</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<artifactId>maven-javadoc-plugin</artifactId>
+				<executions>
+					<execution>
+						<id>javadoc-jar</id>
+						<phase>package</phase>
+						<goals>
+							<goal>jar</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+  
+  <dependencies>
+  	<dependency>
+        <groupId>org.eclipse.osbp.utils.functionnormalizer</groupId>
+  		<artifactId>org.eclipse.osbp.utils.functionnormalizer</artifactId>
+  		<version>0.9.0-SNAPSHOT</version>
+  	</dependency>
+  	<dependency>
+  		<groupId>org.eclipse.osbp.utils.functionnormalizer</groupId>
+  		<artifactId>org.eclipse.osbp.utils.functionnormalizer.tests</artifactId>
+  		<version>0.9.0-SNAPSHOT</version>
+  	</dependency>
+  </dependencies>
+</project>
diff --git a/org.eclipse.osbp.utils.functionnormalizer.feature/src/main/javadoc/README.txt b/org.eclipse.osbp.utils.functionnormalizer.feature/src/main/javadoc/README.txt
new file mode 100644
index 0000000..831da7e
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.feature/src/main/javadoc/README.txt
@@ -0,0 +1 @@
+Resource folder for javadoc resources.
\ No newline at end of file
diff --git a/org.eclipse.osbp.utils.functionnormalizer.feature/src/overview.html b/org.eclipse.osbp.utils.functionnormalizer.feature/src/overview.html
new file mode 100644
index 0000000..c62dd84
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.feature/src/overview.html
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+	<title>OSBP Tools Graphical Entity</title>
+</head>
+<body>
+<p>The <strong>OSBP&nbsp;Utils&nbsp;Functionnormalizer&nbsp;</strong>provides&nbsp;basic&nbsp;bundles&nbsp;used in some OSBP&nbsp;DSL.</p>
+</body>
+</html>
diff --git a/org.eclipse.osbp.utils.functionnormalizer.tests/.project b/org.eclipse.osbp.utils.functionnormalizer.tests/.project
new file mode 100644
index 0000000..b3fe4cb
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.tests/.project
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.utils.functionnormalizer.tests</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.utils.functionnormalizer.tests/LICENSE.txt b/org.eclipse.osbp.utils.functionnormalizer.tests/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.tests/LICENSE.txt
@@ -0,0 +1,161 @@
+Eclipse Public License -v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION
+OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.
+A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate
+modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of
+its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute
+and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code
+form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the
+combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not
+apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no
+assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity
+based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property
+rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the
+Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to
+grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including
+warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any
+other party; and
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it
+in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and
+the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes
+the Program in a commercial product offering should do so in a manner which does not create potential liability for
+other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions
+brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual
+property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the
+Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may
+ participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is
+then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone.
+Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to
+those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result,
+the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for
+determining the appropriateness of using and distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance
+with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such
+Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such
+noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution
+of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses
+ granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement
+is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish
+new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the
+right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including Contributions) may always be
+distributed subject to the version of the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the
+new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States
+of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause
+of action arose. Each party waives its rights to a jury trial in any resulting litigation.
\ No newline at end of file
diff --git a/org.eclipse.osbp.utils.functionnormalizer.tests/META-INF/MANIFEST.MF b/org.eclipse.osbp.utils.functionnormalizer.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..03707fe
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.utils.functionnormalizer.tests
+Bundle-SymbolicName: org.eclipse.osbp.utils.functionnormalizer.tests
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Bundle-Activator: org.eclipse.osbp.utils.functionnormalizer.tests.Activator
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Import-Package: org.osgi.framework;version="1.3.0"
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.junit;bundle-version="4.11.0",
+ org.knowhowlab.osgi.testing.assertions;bundle-version="1.3.0",
+ org.knowhowlab.osgi.testing.utils;bundle-version="1.2.2",
+ org.eclipse.osbp.utils.functionnormalizer;bundle-version="[0.9.0,0.10.0)"
diff --git a/org.eclipse.osbp.utils.functionnormalizer.tests/about.html b/org.eclipse.osbp.utils.functionnormalizer.tests/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.tests/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.utils.functionnormalizer.tests/about.ini b/org.eclipse.osbp.utils.functionnormalizer.tests/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.tests/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.utils.functionnormalizer.tests/about.mappings b/org.eclipse.osbp.utils.functionnormalizer.tests/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.tests/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.utils.functionnormalizer.tests/about.properties b/org.eclipse.osbp.utils.functionnormalizer.tests/about.properties
new file mode 100644
index 0000000..601d1cb
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.tests/about.properties
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#    Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.utils.functionnormalizer.tests
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.utils.functionnormalizer.tests/build.properties b/org.eclipse.osbp.utils.functionnormalizer.tests/build.properties
new file mode 100644
index 0000000..c72fb45
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.tests/build.properties
@@ -0,0 +1,17 @@
+<<<<<<< HEAD
+source.. = src/
+output.. = target/classes/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  META-INF/,\
+               .
+=======
+source.. = src/
+output.. = target/classes/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  META-INF/,\
+               .,\
+               license.html,\
+               LICENSE.txt,\
+               epl-v10.html
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  license.html,\
+               LICENSE.txt,\
+               epl-v10.html			   
+>>>>>>> branch 'development' of ssh://osbp@10.1.13.14/cxgit/org.eclipse.osbp.utils.functionnormalizer.git
diff --git a/org.eclipse.osbp.utils.functionnormalizer.tests/epl-v10.html b/org.eclipse.osbp.utils.functionnormalizer.tests/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.tests/epl-v10.html
@@ -0,0 +1,259 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Public License - Version 1.0</title>
+<style type="text/css">
+  body {
+    size: 8.5in 11.0in;
+    margin: 0.25in 0.5in 0.25in 0.5in;
+    tab-interval: 0.5in;
+    }
+  p {  	
+    margin-left: auto;
+    margin-top:  0.5em;
+    margin-bottom: 0.5em;
+    }
+  p.list {
+  	margin-left: 0.5in;
+    margin-top:  0.05em;
+    margin-bottom: 0.05em;
+    }
+  </style>
+
+</head>
+
+<body lang="EN-US">
+
+<h2>Eclipse Public License - v 1.0</h2>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.utils.functionnormalizer.tests/license.html b/org.eclipse.osbp.utils.functionnormalizer.tests/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.tests/license.html
@@ -0,0 +1,164 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>February 1, 2011</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY "CONTENT").  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse
+ Foundation is provided to you under the terms and conditions of the 
+Eclipse Public License Version 1.0
+   ("EPL").  A copy of the EPL is provided with this Content and is also
+ available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, 
+documentation and other files maintained in the Eclipse Foundation 
+source code
+   repository ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to 
+facilitate delivering, extending, and upgrading the Content.  Typical 
+modules may include plug-ins ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or 
+Fragments and associated material.  Each Feature may be packaged as a 
+sub-directory in a directory named "features".  Within a Feature, files 
+named "feature.xml" may contain a list of the names and version numbers 
+of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features ("Included 
+Features"). Within a Feature, files named "feature.xml" may contain a 
+list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be 
+contained in files named "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  Abouts and Feature Licenses may be located in any
+ directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named "src" of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is 
+installed using the Provisioning Technology (as defined below), you must
+ agree to a license ("Feature Update License") during the
+installation process.  If the Feature contains Included Features, the 
+Feature Update License should either provide you with the terms and 
+conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be 
+found in the "license" property of files named "feature.properties" 
+found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the 
+terms and conditions (or references to such terms and conditions) that 
+govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER 
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.
+  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND 
+CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, 
+or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions 
+govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, 
+examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). This 
+capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about 
+packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   ("Specification").</p>
+
+<p>You may use Provisioning Technology to allow other parties to install
+ Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to
+ be presented to, and accepted by, the users of the Provisioning 
+Technology
+   in accordance with the Specification. By using Provisioning 
+Technology in such a manner and making it available in accordance with 
+the
+   Specification, you further acknowledge your agreement to, and the 
+acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") with the intent of installing, 
+extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology 
+may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user 
+the terms and conditions that govern the use of the Installable
+       Software ("Installable Software Agreement") and such Installable 
+Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable 
+Software Agreement must inform the user of the terms and conditions that
+ govern
+       the Installable Software and must solicit acceptance by the end 
+user in the manner prescribed in such Installable Software Agreement. 
+Upon such
+       indication of agreement by the user, the provisioning Technology 
+will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are
+ currently may have restrictions on the import, possession, and use, 
+and/or re-export to
+   another country, of encryption software. BEFORE using any encryption 
+software, please check the country's laws, regulations and policies 
+concerning the import,
+   possession, or use, and re-export of encryption software, to see if 
+this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.utils.functionnormalizer.tests/pom.xml b/org.eclipse.osbp.utils.functionnormalizer.tests/pom.xml
new file mode 100644
index 0000000..5005425
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.tests/pom.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# All rights reserved. This program and the accompanying materials -->
+<!--# are made available under the terms of the Eclipse Public License v1.0 -->
+<!--# which accompanies this distribution, and is available at -->
+<!--# http://www.eclipse.org/legal/epl-v10.html -->
+<!--# -->
+<!--# Contributors: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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>
+  <parent>
+  	<groupId>org.eclipse.osbp.utils.functionnormalizer</groupId>
+  	<artifactId>org.eclipse.osbp.utils.functionnormalizer.aggregator</artifactId>
+  	<version>0.9.0-SNAPSHOT</version>
+  	<relativePath>..</relativePath>
+  </parent>
+  <packaging>eclipse-plugin</packaging>
+  <artifactId>org.eclipse.osbp.utils.functionnormalizer.tests</artifactId>
+  <build>
+    <sourceDirectory>src</sourceDirectory>
+    <plugins>
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>3.1</version>
+        <configuration>
+          <source>1.8</source>
+          <target>1.8</target>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/org.eclipse.osbp.utils.functionnormalizer.tests/src/org/eclipse/osbp/utils/functionnormalizer/tests/Activator.java b/org.eclipse.osbp.utils.functionnormalizer.tests/src/org/eclipse/osbp/utils/functionnormalizer/tests/Activator.java
new file mode 100644
index 0000000..40d1e8b
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.tests/src/org/eclipse/osbp/utils/functionnormalizer/tests/Activator.java
@@ -0,0 +1,53 @@
+/*
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the terms of the Eclipse Public License v1.0       
+ *  which accompanies this distribution, and is available at                  
+ *  http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ *  Contributors:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.utils.functionnormalizer.tests;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class Activator.
+ */
+public class Activator implements BundleActivator {
+
+	/** The context. */
+	private static BundleContext context;
+
+	/**
+	 * Gets the context.
+	 *
+	 * @return the context
+	 */
+	static BundleContext getContext() {
+		return context;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext bundleContext) throws Exception {
+		Activator.context = bundleContext;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext bundleContext) throws Exception {
+		Activator.context = null;
+	}
+
+}
diff --git a/org.eclipse.osbp.utils.functionnormalizer.tests/src/org/eclipse/osbp/utils/functionnormalizer/tests/FunctionnormalizerTests.java b/org.eclipse.osbp.utils.functionnormalizer.tests/src/org/eclipse/osbp/utils/functionnormalizer/tests/FunctionnormalizerTests.java
new file mode 100644
index 0000000..8b3c8a8
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer.tests/src/org/eclipse/osbp/utils/functionnormalizer/tests/FunctionnormalizerTests.java
@@ -0,0 +1,59 @@
+/*
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the terms of the Eclipse Public License v1.0       
+ *  which accompanies this distribution, and is available at                  
+ *  http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ *  Contributors:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+
+package org.eclipse.osbp.utils.functionnormalizer.tests;
+
+import static org.junit.Assert.assertEquals;
+
+import org.eclipse.osbp.utils.functionnormalizer.api.FunctionTypingAPI;
+import org.junit.Test;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Tests the {@link TextFieldPresentation}.
+ */
+public class FunctionnormalizerTests {
+
+
+	/**
+	 * Tests rendering issues.
+	 *
+	 * @throws Exception
+	 *             the exception
+	 */
+	@Test
+	// BEGIN SUPRESS CATCH EXCEPTION
+	public void test_FunctionTypingAPI() throws Exception {
+		
+		FunctionTypingAPI functionTypingAPI = new FunctionTypingAPI();
+
+		assertEquals("functionCss", functionTypingAPI.getFunctionTypeNameByListIndex(0));
+		assertEquals("functionConverter", functionTypingAPI.getFunctionTypeNameByListIndex(1));
+		assertEquals("functionImagePicker", functionTypingAPI.getFunctionTypeNameByListIndex(2));
+
+		assertEquals("functionCss", functionTypingAPI.getFunctionCssTypeName());
+		assertEquals("functionConverter", functionTypingAPI.getFunctionConverterTypeName());
+		assertEquals("functionImagePicker", functionTypingAPI.getFunctionImagePickerTypeName());
+		
+		assertEquals("booleanFunction", functionTypingAPI.getFunctionNormalizerNameByListIndex(0));
+		assertEquals("StringFunction", functionTypingAPI.getFunctionNormalizerNameByListIndex(1));
+		
+		assertEquals("boolean", functionTypingAPI.getFunctionNormalizerReturnTypeByListIndex(0));
+		assertEquals("String", functionTypingAPI.getFunctionNormalizerReturnTypeByListIndex(1));
+		
+		assertEquals("boolean", functionTypingAPI.getFunctionNormalizerReturnTypeByName("booleanFunction"));
+		assertEquals("String", functionTypingAPI.getFunctionNormalizerReturnTypeByName("StringFunction"));
+	}
+
+}
diff --git a/org.eclipse.osbp.utils.functionnormalizer/.project b/org.eclipse.osbp.utils.functionnormalizer/.project
new file mode 100644
index 0000000..416dd4b
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/.project
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.utils.functionnormalizer</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.osbp.ide.core.ui.shared.OSBPModelEnhancingBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.osbp.ide.core.ui.shared.OSBPI18nBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+		<nature>org.eclipse.osbp.ide.core.ui.shared.OSBPNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.utils.functionnormalizer/LICENSE.txt b/org.eclipse.osbp.utils.functionnormalizer/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/LICENSE.txt
@@ -0,0 +1,161 @@
+Eclipse Public License -v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION
+OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.
+A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate
+modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of
+its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute
+and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code
+form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the
+combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not
+apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no
+assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity
+based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property
+rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the
+Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to
+grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including
+warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any
+other party; and
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it
+in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and
+the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes
+the Program in a commercial product offering should do so in a manner which does not create potential liability for
+other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions
+brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual
+property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the
+Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may
+ participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is
+then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone.
+Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to
+those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result,
+the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for
+determining the appropriateness of using and distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance
+with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such
+Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such
+noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution
+of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses
+ granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement
+is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish
+new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the
+right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including Contributions) may always be
+distributed subject to the version of the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the
+new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States
+of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause
+of action arose. Each party waives its rights to a jury trial in any resulting litigation.
\ No newline at end of file
diff --git a/org.eclipse.osbp.utils.functionnormalizer/META-INF/MANIFEST.MF b/org.eclipse.osbp.utils.functionnormalizer/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..8381867
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/META-INF/MANIFEST.MF
@@ -0,0 +1,26 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.utils.functionnormalizer
+Bundle-SymbolicName: org.eclipse.osbp.utils.functionnormalizer
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Bundle-Activator: org.eclipse.osbp.utils.functionnormalizer.Activator
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Import-Package: javax.validation,
+ javax.validation.constraints,
+ org.osgi.framework;version="1.3.0"
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.osbp.gitinfo;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.xtext.xbase.lib;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.osbp.dsl.datatype.lib;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)",
+ javax.persistence;bundle-version="2.1.0",
+ org.eclipse.osbp.xtext.i18n;bundle-version="[0.9.0,0.10.0)",
+ org.slf4j.api;bundle-version="1.7.2",
+ org.eclipse.osbp.dsl.dto.lib;bundle-version="[0.9.0,0.10.0)"
+Export-Package: org.eclipse.osbp.utils.functionnormalizer;version="0.9.0",
+ org.eclipse.osbp.utils.functionnormalizer.api;version="0.9.0",
+ org.eclipse.osbp.utils.functionnormalizer.entities
+OSBP-RuntimeBuilder-BundleSpace: 
+OSBP-ECView-I18nProvider: 
+Factory-Model: datatype, entity, dto 
diff --git a/org.eclipse.osbp.utils.functionnormalizer/about.html b/org.eclipse.osbp.utils.functionnormalizer/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.utils.functionnormalizer/about.ini b/org.eclipse.osbp.utils.functionnormalizer/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.utils.functionnormalizer/about.mappings b/org.eclipse.osbp.utils.functionnormalizer/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.utils.functionnormalizer/about.properties b/org.eclipse.osbp.utils.functionnormalizer/about.properties
new file mode 100644
index 0000000..a5eda46
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/about.properties
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#    Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.utils.functionnormalizer
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.utils.functionnormalizer/build.properties b/org.eclipse.osbp.utils.functionnormalizer/build.properties
new file mode 100644
index 0000000..489d904
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/build.properties
@@ -0,0 +1,12 @@
+source.. = src/,\
+		   src-gen
+output.. = target/classes/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  META-INF/,\
+               .,\
+               OSGI-INF/,\
+               license.html,\
+               LICENSE.txt,\
+               epl-v10.html
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  license.html,\
+               LICENSE.txt,\
+               epl-v10.html			   
diff --git a/org.eclipse.osbp.utils.functionnormalizer/epl-v10.html b/org.eclipse.osbp.utils.functionnormalizer/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/epl-v10.html
@@ -0,0 +1,259 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Public License - Version 1.0</title>
+<style type="text/css">
+  body {
+    size: 8.5in 11.0in;
+    margin: 0.25in 0.5in 0.25in 0.5in;
+    tab-interval: 0.5in;
+    }
+  p {  	
+    margin-left: auto;
+    margin-top:  0.5em;
+    margin-bottom: 0.5em;
+    }
+  p.list {
+  	margin-left: 0.5in;
+    margin-top:  0.05em;
+    margin-bottom: 0.05em;
+    }
+  </style>
+
+</head>
+
+<body lang="EN-US">
+
+<h2>Eclipse Public License - v 1.0</h2>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.utils.functionnormalizer/i18n/I18N.properties b/org.eclipse.osbp.utils.functionnormalizer/i18n/I18N.properties
new file mode 100644
index 0000000..85b97b8
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/i18n/I18N.properties
@@ -0,0 +1,28 @@
+#default
+activation_time=activation_time
+actual_owner=actual_owner
+created_by=created_by
+created_on=created_on
+description=description
+expiration_time=expiration_time
+function_normalizer=function_normalizer
+function_type=function_type
+function_typing=function_typing
+name=name
+normalizer=normalizer
+org.eclipse.osbp.utils.functionnormalizer.entities.function_normalizer=function_normalizer
+org.eclipse.osbp.utils.functionnormalizer.entities.function_type=function_type
+org.eclipse.osbp.utils.functionnormalizer.entities.function_typing=function_typing
+org.eclipse.osbp.utils.functionnormalizer.entities.name=name
+org.eclipse.osbp.utils.functionnormalizer.entities.normalizer=normalizer
+org.eclipse.osbp.utils.functionnormalizer.entities.return_type=return_type
+org.eclipse.osbp.utils.functionnormalizer.entities.types=types
+priority=priority
+process_id=process_id
+process_instance_id=process_instance_id
+process_session_id=process_session_id
+return_type=return_type
+status=status
+subject=subject
+task_id=task_id
+types=types
diff --git a/org.eclipse.osbp.utils.functionnormalizer/i18n/I18N_de.properties b/org.eclipse.osbp.utils.functionnormalizer/i18n/I18N_de.properties
new file mode 100644
index 0000000..af6fdef
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/i18n/I18N_de.properties
@@ -0,0 +1 @@
+#de
diff --git a/org.eclipse.osbp.utils.functionnormalizer/i18n/I18N_de_AT.properties b/org.eclipse.osbp.utils.functionnormalizer/i18n/I18N_de_AT.properties
new file mode 100644
index 0000000..6c73e1d
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/i18n/I18N_de_AT.properties
@@ -0,0 +1 @@
+#de_AT
diff --git a/org.eclipse.osbp.utils.functionnormalizer/i18n/I18N_en.properties b/org.eclipse.osbp.utils.functionnormalizer/i18n/I18N_en.properties
new file mode 100644
index 0000000..1a61348
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/i18n/I18N_en.properties
@@ -0,0 +1,38 @@
+#en
+activation_time=Activation time
+actual_owner=Actual owner
+created_by=Created by
+created_on=Created on
+description=Description
+expiration_time=Expiration time
+function_normalizer=Function normalizer
+function_type=Function type
+function_typing=Function typing
+name=Name
+normalizer=Normalizer
+org.eclipse.osbp.utils.functionnormalizer.entities.function_normalizer=function normalizer
+org.eclipse.osbp.utils.functionnormalizer.entities.function_type=function type
+org.eclipse.osbp.utils.functionnormalizer.entities.function_typing=function typing
+org.eclipse.osbp.utils.functionnormalizer.entities.name=name
+org.eclipse.osbp.utils.functionnormalizer.entities.normalizer=normalizer
+org.eclipse.osbp.utils.functionnormalizer.entities.return_type=return type
+org.eclipse.osbp.utils.functionnormalizer.entities.types=types
+org.eclipse.osbp.utils.functionnormalizer.function_normalizer=function normalizer
+org.eclipse.osbp.utils.functionnormalizer.function_type=function type
+org.eclipse.osbp.utils.functionnormalizer.function_typing=function typing
+org.eclipse.osbp.utils.functionnormalizer.id=identifier
+org.eclipse.osbp.utils.functionnormalizer.name=name
+org.eclipse.osbp.utils.functionnormalizer.normalizer=normalizer
+org.eclipse.osbp.utils.functionnormalizer.resolution=resolution
+org.eclipse.osbp.utils.functionnormalizer.return_type=return type
+org.eclipse.osbp.utils.functionnormalizer.type=type
+org.eclipse.osbp.utils.functionnormalizer.types=types
+priority=Priority
+process_id=Process identifier
+process_instance_id=Process instance identifier
+process_session_id=Process session identifier
+return_type=Return type
+status=Status
+subject=Subject
+task_id=Task identifier
+types=Types
diff --git a/org.eclipse.osbp.utils.functionnormalizer/i18n/I18N_en_US.properties b/org.eclipse.osbp.utils.functionnormalizer/i18n/I18N_en_US.properties
new file mode 100644
index 0000000..d89e21c
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/i18n/I18N_en_US.properties
@@ -0,0 +1 @@
+#en_US
diff --git a/org.eclipse.osbp.utils.functionnormalizer/i18n/I18N_fr.properties b/org.eclipse.osbp.utils.functionnormalizer/i18n/I18N_fr.properties
new file mode 100644
index 0000000..a84da83
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/i18n/I18N_fr.properties
@@ -0,0 +1 @@
+#fr
diff --git a/org.eclipse.osbp.utils.functionnormalizer/license.html b/org.eclipse.osbp.utils.functionnormalizer/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/license.html
@@ -0,0 +1,164 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>February 1, 2011</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY "CONTENT").  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse
+ Foundation is provided to you under the terms and conditions of the 
+Eclipse Public License Version 1.0
+   ("EPL").  A copy of the EPL is provided with this Content and is also
+ available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, 
+documentation and other files maintained in the Eclipse Foundation 
+source code
+   repository ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to 
+facilitate delivering, extending, and upgrading the Content.  Typical 
+modules may include plug-ins ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or 
+Fragments and associated material.  Each Feature may be packaged as a 
+sub-directory in a directory named "features".  Within a Feature, files 
+named "feature.xml" may contain a list of the names and version numbers 
+of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features ("Included 
+Features"). Within a Feature, files named "feature.xml" may contain a 
+list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be 
+contained in files named "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  Abouts and Feature Licenses may be located in any
+ directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named "src" of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is 
+installed using the Provisioning Technology (as defined below), you must
+ agree to a license ("Feature Update License") during the
+installation process.  If the Feature contains Included Features, the 
+Feature Update License should either provide you with the terms and 
+conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be 
+found in the "license" property of files named "feature.properties" 
+found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the 
+terms and conditions (or references to such terms and conditions) that 
+govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER 
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.
+  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND 
+CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, 
+or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions 
+govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, 
+examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). This 
+capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about 
+packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   ("Specification").</p>
+
+<p>You may use Provisioning Technology to allow other parties to install
+ Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to
+ be presented to, and accepted by, the users of the Provisioning 
+Technology
+   in accordance with the Specification. By using Provisioning 
+Technology in such a manner and making it available in accordance with 
+the
+   Specification, you further acknowledge your agreement to, and the 
+acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") with the intent of installing, 
+extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology 
+may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user 
+the terms and conditions that govern the use of the Installable
+       Software ("Installable Software Agreement") and such Installable 
+Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable 
+Software Agreement must inform the user of the terms and conditions that
+ govern
+       the Installable Software and must solicit acceptance by the end 
+user in the manner prescribed in such Installable Software Agreement. 
+Upon such
+       indication of agreement by the user, the provisioning Technology 
+will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are
+ currently may have restrictions on the import, possession, and use, 
+and/or re-export to
+   another country, of encryption software. BEFORE using any encryption 
+software, please check the country's laws, regulations and policies 
+concerning the import,
+   possession, or use, and re-export of encryption software, to see if 
+this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.utils.functionnormalizer/pom.xml b/org.eclipse.osbp.utils.functionnormalizer/pom.xml
new file mode 100644
index 0000000..0121c58
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/pom.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# All rights reserved. This program and the accompanying materials -->
+<!--# are made available under the terms of the Eclipse Public License v1.0 -->
+<!--# which accompanies this distribution, and is available at -->
+<!--# http://www.eclipse.org/legal/epl-v10.html -->
+<!--# -->
+<!--# Contributors: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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>
+	<parent>
+		<groupId>org.eclipse.osbp.utils.functionnormalizer</groupId>
+		<artifactId>org.eclipse.osbp.utils.functionnormalizer.aggregator</artifactId>
+		<version>0.9.0-SNAPSHOT</version>
+		<relativePath>..</relativePath>
+	</parent>
+	<artifactId>org.eclipse.osbp.utils.functionnormalizer</artifactId>
+	<packaging>eclipse-plugin</packaging>
+</project>
diff --git a/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/dtos/FunctionNormalizerDto.java b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/dtos/FunctionNormalizerDto.java
new file mode 100644
index 0000000..4536a59
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/dtos/FunctionNormalizerDto.java
@@ -0,0 +1,224 @@
+/**
+ * Copyright (c) 2015 - 2016 - Loetz GmbH&Co.KG, 69115 Heidelberg, Germany
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ * 
+ *  Contributors:
+ * 	   Loetz GmbH&Co.KG - Initial implementation
+ */
+package org.eclipse.osbp.utils.functionnormalizer.dtos;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.io.Serializable;
+import org.eclipse.osbp.dsl.common.datatypes.IDto;
+import org.eclipse.osbp.dsl.dto.lib.MappingContext;
+import org.eclipse.osbp.runtime.common.annotations.Dispose;
+
+@SuppressWarnings("all")
+public class FunctionNormalizerDto implements IDto, Serializable, PropertyChangeListener {
+  private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);
+  
+  @Dispose
+  private boolean disposed;
+  
+  private String name;
+  
+  private String returnType;
+  
+  /**
+   * @return true, if the object is disposed. 
+   * Disposed means, that it is prepared for garbage collection and may not be used anymore. 
+   * Accessing objects that are already disposed will cause runtime exceptions.
+   * 
+   */
+  public boolean isDisposed() {
+    return this.disposed;
+  }
+  
+  /**
+   * @see PropertyChangeSupport#addPropertyChangeListener(PropertyChangeListener)
+   */
+  public void addPropertyChangeListener(final PropertyChangeListener listener) {
+    propertyChangeSupport.addPropertyChangeListener(listener);
+  }
+  
+  /**
+   * @see PropertyChangeSupport#addPropertyChangeListener(String, PropertyChangeListener)
+   */
+  public void addPropertyChangeListener(final String propertyName, final PropertyChangeListener listener) {
+    propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
+  }
+  
+  /**
+   * @see PropertyChangeSupport#removePropertyChangeListener(PropertyChangeListener)
+   */
+  public void removePropertyChangeListener(final PropertyChangeListener listener) {
+    propertyChangeSupport.removePropertyChangeListener(listener);
+  }
+  
+  /**
+   * @see PropertyChangeSupport#removePropertyChangeListener(String, PropertyChangeListener)
+   */
+  public void removePropertyChangeListener(final String propertyName, final PropertyChangeListener listener) {
+    propertyChangeSupport.removePropertyChangeListener(propertyName, listener);
+  }
+  
+  /**
+   * @see PropertyChangeSupport#firePropertyChange(String, Object, Object)
+   */
+  public void firePropertyChange(final String propertyName, final Object oldValue, final Object newValue) {
+    propertyChangeSupport.firePropertyChange(propertyName, oldValue, newValue);
+  }
+  
+  /**
+   * Checks whether the object is disposed.
+   * @throws RuntimeException if the object is disposed.
+   */
+  private void checkDisposed() {
+    if (isDisposed()) {
+      throw new RuntimeException("Object already disposed: " + this);
+    }
+  }
+  
+  /**
+   * Calling dispose will destroy that instance. The internal state will be 
+   * set to 'disposed' and methods of that object must not be used anymore. 
+   * Each call will result in runtime exceptions.<br/>
+   * If this object keeps composition containments, these will be disposed too. 
+   * So the whole composition containment tree will be disposed on calling this method.
+   */
+  @Dispose
+  public void dispose() {
+    if (isDisposed()) {
+      return;
+    }
+    firePropertyChange("disposed", this.disposed, this.disposed = true);
+  }
+  
+  /**
+   * Installs lazy collection resolving for entity {@link FunctionNormalizer} to the dto {@link FunctionNormalizerDto}.
+   * 
+   */
+  protected void installLazyCollections() {
+    
+  }
+  
+  /**
+   * Returns the name property or <code>null</code> if not present.
+   */
+  public String getName() {
+    return this.name;
+  }
+  
+  /**
+   * Sets the <code>name</code> property to this instance.
+   * 
+   * @param name - the property
+   * @throws RuntimeException if instance is <code>disposed</code>
+   * 
+   */
+  public void setName(final String name) {
+    firePropertyChange("name", this.name, this.name = name );
+  }
+  
+  /**
+   * Returns the returnType property or <code>null</code> if not present.
+   */
+  public String getReturnType() {
+    return this.returnType;
+  }
+  
+  /**
+   * Sets the <code>returnType</code> property to this instance.
+   * 
+   * @param returnType - the property
+   * @throws RuntimeException if instance is <code>disposed</code>
+   * 
+   */
+  public void setReturnType(final String returnType) {
+    firePropertyChange("returnType", this.returnType, this.returnType = returnType );
+  }
+  
+  public FunctionNormalizerDto createDto() {
+    return new FunctionNormalizerDto();
+  }
+  
+  public FunctionNormalizerDto copy(final MappingContext context) {
+    checkDisposed();
+    
+    if (context == null) {
+    	throw new IllegalArgumentException("Context must not be null!");
+    }
+    
+    if(context.isMaxLevel()){
+    	return null;
+    }
+    
+    // if context contains a copied instance of this object
+    // then return it
+    FunctionNormalizerDto newDto = context.get(this);
+    if(newDto != null){
+    	return newDto;
+    }
+    
+    try{
+    	context.increaseLevel();
+    	
+    	newDto = createDto();
+    	context.register(this, newDto);
+    	
+    	// first copy the containments and attributes
+    	copyContainments(this, newDto, context);
+    	
+    	// then copy cross references to ensure proper
+    	// opposite references are copied too.
+    	copyCrossReferences(this, newDto, context);
+    } finally {
+    	context.decreaseLevel();
+    }
+    
+    return newDto;
+  }
+  
+  public void copyContainments(final FunctionNormalizerDto dto, final FunctionNormalizerDto newDto, final MappingContext context) {
+    checkDisposed();
+    
+    if (context == null) {
+    	throw new IllegalArgumentException("Context must not be null!");
+    }
+    
+    
+    // copy attributes and beans (beans if derived from entity model)
+    // copy name
+    newDto.setName(getName());
+    // copy returnType
+    newDto.setReturnType(getReturnType());
+    
+    // copy containment references (cascading is true)
+  }
+  
+  public void copyCrossReferences(final FunctionNormalizerDto dto, final FunctionNormalizerDto newDto, final org.eclipse.osbp.dsl.dto.lib.MappingContext context) {
+    checkDisposed();
+    
+    if (context == null) {
+    	throw new IllegalArgumentException("Context must not be null!");
+    }
+    
+    
+    // copy cross references (cascading is false)
+  }
+  
+  public void propertyChange(final java.beans.PropertyChangeEvent event) {
+    Object source = event.getSource();
+    
+    // forward the event from embeddable beans to all listeners. So the parent of the embeddable
+    // bean will become notified and its dirty state can be handled properly
+    { 
+    	// no super class available to forward event
+    }
+  }
+}
diff --git a/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/dtos/FunctionTypeDto.java b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/dtos/FunctionTypeDto.java
new file mode 100644
index 0000000..760c6f5
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/dtos/FunctionTypeDto.java
@@ -0,0 +1,202 @@
+/**
+ * Copyright (c) 2015 - 2016 - Loetz GmbH&Co.KG, 69115 Heidelberg, Germany
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ * 
+ *  Contributors:
+ * 	   Loetz GmbH&Co.KG - Initial implementation
+ */
+package org.eclipse.osbp.utils.functionnormalizer.dtos;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.io.Serializable;
+import org.eclipse.osbp.dsl.common.datatypes.IDto;
+import org.eclipse.osbp.dsl.dto.lib.MappingContext;
+import org.eclipse.osbp.runtime.common.annotations.Dispose;
+
+@SuppressWarnings("all")
+public class FunctionTypeDto implements IDto, Serializable, PropertyChangeListener {
+  private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);
+  
+  @Dispose
+  private boolean disposed;
+  
+  private String name;
+  
+  /**
+   * @return true, if the object is disposed. 
+   * Disposed means, that it is prepared for garbage collection and may not be used anymore. 
+   * Accessing objects that are already disposed will cause runtime exceptions.
+   * 
+   */
+  public boolean isDisposed() {
+    return this.disposed;
+  }
+  
+  /**
+   * @see PropertyChangeSupport#addPropertyChangeListener(PropertyChangeListener)
+   */
+  public void addPropertyChangeListener(final PropertyChangeListener listener) {
+    propertyChangeSupport.addPropertyChangeListener(listener);
+  }
+  
+  /**
+   * @see PropertyChangeSupport#addPropertyChangeListener(String, PropertyChangeListener)
+   */
+  public void addPropertyChangeListener(final String propertyName, final PropertyChangeListener listener) {
+    propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
+  }
+  
+  /**
+   * @see PropertyChangeSupport#removePropertyChangeListener(PropertyChangeListener)
+   */
+  public void removePropertyChangeListener(final PropertyChangeListener listener) {
+    propertyChangeSupport.removePropertyChangeListener(listener);
+  }
+  
+  /**
+   * @see PropertyChangeSupport#removePropertyChangeListener(String, PropertyChangeListener)
+   */
+  public void removePropertyChangeListener(final String propertyName, final PropertyChangeListener listener) {
+    propertyChangeSupport.removePropertyChangeListener(propertyName, listener);
+  }
+  
+  /**
+   * @see PropertyChangeSupport#firePropertyChange(String, Object, Object)
+   */
+  public void firePropertyChange(final String propertyName, final Object oldValue, final Object newValue) {
+    propertyChangeSupport.firePropertyChange(propertyName, oldValue, newValue);
+  }
+  
+  /**
+   * Checks whether the object is disposed.
+   * @throws RuntimeException if the object is disposed.
+   */
+  private void checkDisposed() {
+    if (isDisposed()) {
+      throw new RuntimeException("Object already disposed: " + this);
+    }
+  }
+  
+  /**
+   * Calling dispose will destroy that instance. The internal state will be 
+   * set to 'disposed' and methods of that object must not be used anymore. 
+   * Each call will result in runtime exceptions.<br/>
+   * If this object keeps composition containments, these will be disposed too. 
+   * So the whole composition containment tree will be disposed on calling this method.
+   */
+  @Dispose
+  public void dispose() {
+    if (isDisposed()) {
+      return;
+    }
+    firePropertyChange("disposed", this.disposed, this.disposed = true);
+  }
+  
+  /**
+   * Installs lazy collection resolving for entity {@link FunctionType} to the dto {@link FunctionTypeDto}.
+   * 
+   */
+  protected void installLazyCollections() {
+    
+  }
+  
+  /**
+   * Returns the name property or <code>null</code> if not present.
+   */
+  public String getName() {
+    return this.name;
+  }
+  
+  /**
+   * Sets the <code>name</code> property to this instance.
+   * 
+   * @param name - the property
+   * @throws RuntimeException if instance is <code>disposed</code>
+   * 
+   */
+  public void setName(final String name) {
+    firePropertyChange("name", this.name, this.name = name );
+  }
+  
+  public FunctionTypeDto createDto() {
+    return new FunctionTypeDto();
+  }
+  
+  public FunctionTypeDto copy(final MappingContext context) {
+    checkDisposed();
+    
+    if (context == null) {
+    	throw new IllegalArgumentException("Context must not be null!");
+    }
+    
+    if(context.isMaxLevel()){
+    	return null;
+    }
+    
+    // if context contains a copied instance of this object
+    // then return it
+    FunctionTypeDto newDto = context.get(this);
+    if(newDto != null){
+    	return newDto;
+    }
+    
+    try{
+    	context.increaseLevel();
+    	
+    	newDto = createDto();
+    	context.register(this, newDto);
+    	
+    	// first copy the containments and attributes
+    	copyContainments(this, newDto, context);
+    	
+    	// then copy cross references to ensure proper
+    	// opposite references are copied too.
+    	copyCrossReferences(this, newDto, context);
+    } finally {
+    	context.decreaseLevel();
+    }
+    
+    return newDto;
+  }
+  
+  public void copyContainments(final FunctionTypeDto dto, final FunctionTypeDto newDto, final MappingContext context) {
+    checkDisposed();
+    
+    if (context == null) {
+    	throw new IllegalArgumentException("Context must not be null!");
+    }
+    
+    
+    // copy attributes and beans (beans if derived from entity model)
+    // copy name
+    newDto.setName(getName());
+    
+    // copy containment references (cascading is true)
+  }
+  
+  public void copyCrossReferences(final FunctionTypeDto dto, final FunctionTypeDto newDto, final org.eclipse.osbp.dsl.dto.lib.MappingContext context) {
+    checkDisposed();
+    
+    if (context == null) {
+    	throw new IllegalArgumentException("Context must not be null!");
+    }
+    
+    
+    // copy cross references (cascading is false)
+  }
+  
+  public void propertyChange(final java.beans.PropertyChangeEvent event) {
+    Object source = event.getSource();
+    
+    // forward the event from embeddable beans to all listeners. So the parent of the embeddable
+    // bean will become notified and its dirty state can be handled properly
+    { 
+    	// no super class available to forward event
+    }
+  }
+}
diff --git a/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/dtos/FunctionTypingDto.java b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/dtos/FunctionTypingDto.java
new file mode 100644
index 0000000..f960546
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/dtos/FunctionTypingDto.java
@@ -0,0 +1,367 @@
+/**
+ * Copyright (c) 2015 - 2016 - Loetz GmbH&Co.KG, 69115 Heidelberg, Germany
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ * 
+ *  Contributors:
+ * 	   Loetz GmbH&Co.KG - Initial implementation
+ */
+package org.eclipse.osbp.utils.functionnormalizer.dtos;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.io.Serializable;
+import java.util.Collections;
+import java.util.List;
+import org.eclipse.osbp.dsl.common.datatypes.IDto;
+import org.eclipse.osbp.dsl.dto.lib.MappingContext;
+import org.eclipse.osbp.runtime.common.annotations.Dispose;
+import org.eclipse.osbp.runtime.common.annotations.DomainReference;
+import org.eclipse.osbp.utils.functionnormalizer.dtos.FunctionNormalizerDto;
+import org.eclipse.osbp.utils.functionnormalizer.dtos.FunctionTypeDto;
+
+@SuppressWarnings("all")
+public class FunctionTypingDto implements IDto, Serializable, PropertyChangeListener {
+  private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);
+  
+  @Dispose
+  private boolean disposed;
+  
+  @DomainReference
+  private List<FunctionTypeDto> types;
+  
+  @DomainReference
+  private List<FunctionNormalizerDto> normalizer;
+  
+  /**
+   * @return true, if the object is disposed. 
+   * Disposed means, that it is prepared for garbage collection and may not be used anymore. 
+   * Accessing objects that are already disposed will cause runtime exceptions.
+   * 
+   */
+  public boolean isDisposed() {
+    return this.disposed;
+  }
+  
+  /**
+   * @see PropertyChangeSupport#addPropertyChangeListener(PropertyChangeListener)
+   */
+  public void addPropertyChangeListener(final PropertyChangeListener listener) {
+    propertyChangeSupport.addPropertyChangeListener(listener);
+  }
+  
+  /**
+   * @see PropertyChangeSupport#addPropertyChangeListener(String, PropertyChangeListener)
+   */
+  public void addPropertyChangeListener(final String propertyName, final PropertyChangeListener listener) {
+    propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
+  }
+  
+  /**
+   * @see PropertyChangeSupport#removePropertyChangeListener(PropertyChangeListener)
+   */
+  public void removePropertyChangeListener(final PropertyChangeListener listener) {
+    propertyChangeSupport.removePropertyChangeListener(listener);
+  }
+  
+  /**
+   * @see PropertyChangeSupport#removePropertyChangeListener(String, PropertyChangeListener)
+   */
+  public void removePropertyChangeListener(final String propertyName, final PropertyChangeListener listener) {
+    propertyChangeSupport.removePropertyChangeListener(propertyName, listener);
+  }
+  
+  /**
+   * @see PropertyChangeSupport#firePropertyChange(String, Object, Object)
+   */
+  public void firePropertyChange(final String propertyName, final Object oldValue, final Object newValue) {
+    propertyChangeSupport.firePropertyChange(propertyName, oldValue, newValue);
+  }
+  
+  /**
+   * Checks whether the object is disposed.
+   * @throws RuntimeException if the object is disposed.
+   */
+  private void checkDisposed() {
+    if (isDisposed()) {
+      throw new RuntimeException("Object already disposed: " + this);
+    }
+  }
+  
+  /**
+   * Calling dispose will destroy that instance. The internal state will be 
+   * set to 'disposed' and methods of that object must not be used anymore. 
+   * Each call will result in runtime exceptions.<br/>
+   * If this object keeps composition containments, these will be disposed too. 
+   * So the whole composition containment tree will be disposed on calling this method.
+   */
+  @Dispose
+  public void dispose() {
+    if (isDisposed()) {
+      return;
+    }
+    firePropertyChange("disposed", this.disposed, this.disposed = true);
+  }
+  
+  /**
+   * Installs lazy collection resolving for entity {@link FunctionTyping} to the dto {@link FunctionTypingDto}.
+   * 
+   */
+  protected void installLazyCollections() {
+    
+  }
+  
+  /**
+   * Returns an unmodifiable list of types.
+   */
+  public List<FunctionTypeDto> getTypes() {
+    return Collections.unmodifiableList(internalGetTypes());
+  }
+  
+  /**
+   * Returns the list of <code>FunctionTypeDto</code>s thereby lazy initializing it. For internal use only!
+   * 
+   * @return list - the resulting list
+   * 
+   */
+  private List<FunctionTypeDto> internalGetTypes() {
+    if (this.types == null) {
+      this.types = new java.util.ArrayList<FunctionTypeDto>();
+    }
+    return this.types;
+  }
+  
+  /**
+   * Adds the given functionTypeDto to this object. <p>
+   * 
+   * @param functionTypeDto - the property
+   * @throws RuntimeException if instance is <code>disposed</code>
+   * 
+   */
+  public void addToTypes(final FunctionTypeDto functionTypeDto) {
+    checkDisposed();
+    
+    if(!internalGetTypes().contains(functionTypeDto)){
+    	internalAddToTypes(functionTypeDto);
+    }
+  }
+  
+  public void removeFromTypes(final FunctionTypeDto functionTypeDto) {
+    checkDisposed();
+    
+    internalRemoveFromTypes(functionTypeDto);
+  }
+  
+  /**
+   * For internal use only!
+   */
+  public void internalAddToTypes(final FunctionTypeDto functionTypeDto) {
+    // add this as property change listener for embeddable beans
+    functionTypeDto.addPropertyChangeListener(this);
+    internalGetTypes().add(functionTypeDto);
+  }
+  
+  /**
+   * For internal use only!
+   */
+  public void internalRemoveFromTypes(final FunctionTypeDto functionTypeDto) {
+    // remove this as property change listener from the embeddable bean
+    functionTypeDto.removePropertyChangeListener(this);
+    internalGetTypes().remove(functionTypeDto);
+  }
+  
+  /**
+   * Sets the <code>types</code> property to this instance.
+   * 
+   * @param types - the property
+   * @throws RuntimeException if instance is <code>disposed</code>
+   * 
+   */
+  public void setTypes(final List<FunctionTypeDto> types) {
+    checkDisposed();
+    for (FunctionTypeDto dto : internalGetTypes().toArray(new FunctionTypeDto[this.types.size()])) {
+    	removeFromTypes(dto);
+    }
+    
+    if(types == null) {
+    	return;
+    }
+    
+    for (FunctionTypeDto dto : types) {
+    	addToTypes(dto);
+    }
+  }
+  
+  /**
+   * Returns an unmodifiable list of normalizer.
+   */
+  public List<FunctionNormalizerDto> getNormalizer() {
+    return Collections.unmodifiableList(internalGetNormalizer());
+  }
+  
+  /**
+   * Returns the list of <code>FunctionNormalizerDto</code>s thereby lazy initializing it. For internal use only!
+   * 
+   * @return list - the resulting list
+   * 
+   */
+  private List<FunctionNormalizerDto> internalGetNormalizer() {
+    if (this.normalizer == null) {
+      this.normalizer = new java.util.ArrayList<FunctionNormalizerDto>();
+    }
+    return this.normalizer;
+  }
+  
+  /**
+   * Adds the given functionNormalizerDto to this object. <p>
+   * 
+   * @param functionNormalizerDto - the property
+   * @throws RuntimeException if instance is <code>disposed</code>
+   * 
+   */
+  public void addToNormalizer(final FunctionNormalizerDto functionNormalizerDto) {
+    checkDisposed();
+    
+    if(!internalGetNormalizer().contains(functionNormalizerDto)){
+    	internalAddToNormalizer(functionNormalizerDto);
+    }
+  }
+  
+  public void removeFromNormalizer(final FunctionNormalizerDto functionNormalizerDto) {
+    checkDisposed();
+    
+    internalRemoveFromNormalizer(functionNormalizerDto);
+  }
+  
+  /**
+   * For internal use only!
+   */
+  public void internalAddToNormalizer(final FunctionNormalizerDto functionNormalizerDto) {
+    // add this as property change listener for embeddable beans
+    functionNormalizerDto.addPropertyChangeListener(this);
+    internalGetNormalizer().add(functionNormalizerDto);
+  }
+  
+  /**
+   * For internal use only!
+   */
+  public void internalRemoveFromNormalizer(final FunctionNormalizerDto functionNormalizerDto) {
+    // remove this as property change listener from the embeddable bean
+    functionNormalizerDto.removePropertyChangeListener(this);
+    internalGetNormalizer().remove(functionNormalizerDto);
+  }
+  
+  /**
+   * Sets the <code>normalizer</code> property to this instance.
+   * 
+   * @param normalizer - the property
+   * @throws RuntimeException if instance is <code>disposed</code>
+   * 
+   */
+  public void setNormalizer(final List<FunctionNormalizerDto> normalizer) {
+    checkDisposed();
+    for (FunctionNormalizerDto dto : internalGetNormalizer().toArray(new FunctionNormalizerDto[this.normalizer.size()])) {
+    	removeFromNormalizer(dto);
+    }
+    
+    if(normalizer == null) {
+    	return;
+    }
+    
+    for (FunctionNormalizerDto dto : normalizer) {
+    	addToNormalizer(dto);
+    }
+  }
+  
+  public FunctionTypingDto createDto() {
+    return new FunctionTypingDto();
+  }
+  
+  public FunctionTypingDto copy(final MappingContext context) {
+    checkDisposed();
+    
+    if (context == null) {
+    	throw new IllegalArgumentException("Context must not be null!");
+    }
+    
+    if(context.isMaxLevel()){
+    	return null;
+    }
+    
+    // if context contains a copied instance of this object
+    // then return it
+    FunctionTypingDto newDto = context.get(this);
+    if(newDto != null){
+    	return newDto;
+    }
+    
+    try{
+    	context.increaseLevel();
+    	
+    	newDto = createDto();
+    	context.register(this, newDto);
+    	
+    	// first copy the containments and attributes
+    	copyContainments(this, newDto, context);
+    	
+    	// then copy cross references to ensure proper
+    	// opposite references are copied too.
+    	copyCrossReferences(this, newDto, context);
+    } finally {
+    	context.decreaseLevel();
+    }
+    
+    return newDto;
+  }
+  
+  public void copyContainments(final FunctionTypingDto dto, final FunctionTypingDto newDto, final MappingContext context) {
+    checkDisposed();
+    
+    if (context == null) {
+    	throw new IllegalArgumentException("Context must not be null!");
+    }
+    
+    
+    // copy attributes and beans (beans if derived from entity model)
+    
+    // copy containment references (cascading is true)
+  }
+  
+  public void copyCrossReferences(final FunctionTypingDto dto, final FunctionTypingDto newDto, final org.eclipse.osbp.dsl.dto.lib.MappingContext context) {
+    checkDisposed();
+    
+    if (context == null) {
+    	throw new IllegalArgumentException("Context must not be null!");
+    }
+    
+    
+    // copy cross references (cascading is false)
+    // copy list of types dtos
+    for(org.eclipse.osbp.utils.functionnormalizer.dtos.FunctionTypeDto _dto : getTypes()) {
+    	newDto.addToTypes(_dto.copy(context));
+    }
+    // copy list of normalizer dtos
+    for(org.eclipse.osbp.utils.functionnormalizer.dtos.FunctionNormalizerDto _dto : getNormalizer()) {
+    	newDto.addToNormalizer(_dto.copy(context));
+    }
+  }
+  
+  public void propertyChange(final java.beans.PropertyChangeEvent event) {
+    Object source = event.getSource();
+    
+    // forward the event from embeddable beans to all listeners. So the parent of the embeddable
+    // bean will become notified and its dirty state can be handled properly
+    if(source == types){
+    	firePropertyChange("types" + "_" + event.getPropertyName(), event.getOldValue(), event.getNewValue());
+    } else 
+    if(source == normalizer){
+    	firePropertyChange("normalizer" + "_" + event.getPropertyName(), event.getOldValue(), event.getNewValue());
+    } else 
+    { 
+    	// no super class available to forward event
+    }
+  }
+}
diff --git a/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/dtos/FunctionnormalizerDtosTranslator.java b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/dtos/FunctionnormalizerDtosTranslator.java
new file mode 100644
index 0000000..44cbeb3
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/dtos/FunctionnormalizerDtosTranslator.java
@@ -0,0 +1,80 @@
+package org.eclipse.osbp.utils.functionnormalizer.dtos;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.util.HashMap;
+import java.util.Locale;
+import org.eclipse.osbp.runtime.common.i18n.ITranslator;
+import org.eclipse.osbp.utils.functionnormalizer.entities.FunctionnormalizerEntitiesTranslator;
+import org.slf4j.Logger;
+
+@SuppressWarnings("all")
+public class FunctionnormalizerDtosTranslator implements ITranslator {
+  private static Logger log = org.slf4j.LoggerFactory.getLogger("translations by translator");
+  
+  private static FunctionnormalizerDtosTranslator instance = null;
+  
+  private static Locale lastLocale = null;
+  
+  private static FunctionnormalizerEntitiesTranslator functionnormalizerEntitiesTranslator = null;
+  
+  private PropertyChangeSupport pcs = new java.beans.PropertyChangeSupport(this);
+  
+  private HashMap<String, String> translations = new HashMap<String,String>() {{
+    }};
+  
+  public static FunctionnormalizerDtosTranslator getInstance(final Locale locale) {
+    if(instance == null) {
+    	instance = new org.eclipse.osbp.utils.functionnormalizer.dtos.FunctionnormalizerDtosTranslator();
+    	if (lastLocale == null) {
+    		instance.changeLocale(locale);
+    	}
+    }
+    return instance;
+  }
+  
+  public void addPropertyChangeListener(final PropertyChangeListener listener) {
+    this.pcs.addPropertyChangeListener(listener);
+  }
+  
+  public void removePropertyChangeListener(final PropertyChangeListener listener) {
+    this.pcs.removePropertyChangeListener(listener);
+  }
+  
+  public void mergeTranslations() {
+    functionnormalizerEntitiesTranslator.mergeTranslations();
+    translations.putAll(functionnormalizerEntitiesTranslator.getTranslations());
+    if (log.isDebugEnabled()) log.debug("merge FunctionnormalizerEntitiesTranslator in org.eclipse.osbp.utils.functionnormalizer.dtos");
+    
+  }
+  
+  public HashMap<String, String> getTranslations() {
+    return translations;
+  }
+  
+  public void changeLocale(final Locale locale) {
+    // avoid unnecessary settings
+    if (locale == null) {
+    	if (log.isDebugEnabled()) log.debug("locale for org.eclipse.osbp.utils.functionnormalizer.dtos is null.");
+    	return;
+    }
+    if (locale.equals(lastLocale)) {
+    	if (log.isDebugEnabled()) log.debug("locale for org.eclipse.osbp.utils.functionnormalizer.dtos already set to "+locale.getDisplayLanguage());
+    	return;
+    }
+    if (log.isDebugEnabled()) log.debug("locale for org.eclipse.osbp.utils.functionnormalizer.dtos set to "+locale.getDisplayLanguage());
+    lastLocale = locale;
+    // call the imported translators change locale method
+    if (functionnormalizerEntitiesTranslator == null) {
+    	functionnormalizerEntitiesTranslator = functionnormalizerEntitiesTranslator.getInstance(locale);
+    } else {
+    	functionnormalizerEntitiesTranslator.changeLocale(locale);
+    }
+    try {
+    	java.util.ResourceBundle resource = java.util.ResourceBundle.getBundle("i18n.I18N", locale, getClass().getClassLoader());
+    } catch (java.util.MissingResourceException mre) {
+    	System.err.println(getClass().getCanonicalName()+" - "+mre.getLocalizedMessage());
+    }
+    
+  }
+}
diff --git a/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/dtos/mapper/FunctionNormalizerDtoMapper.java b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/dtos/mapper/FunctionNormalizerDtoMapper.java
new file mode 100644
index 0000000..53a95d0
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/dtos/mapper/FunctionNormalizerDtoMapper.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2015 - 2016 - Loetz GmbH&Co.KG, 69115 Heidelberg, Germany
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ * 
+ *  Contributors:
+ * 	   Loetz GmbH&Co.KG - Initial implementation
+ */
+package org.eclipse.osbp.utils.functionnormalizer.dtos.mapper;
+
+import org.eclipse.osbp.dsl.dto.lib.IMapper;
+import org.eclipse.osbp.dsl.dto.lib.IMapperAccess;
+import org.eclipse.osbp.dsl.dto.lib.MappingContext;
+import org.eclipse.osbp.utils.functionnormalizer.dtos.FunctionNormalizerDto;
+import org.eclipse.osbp.utils.functionnormalizer.entities.FunctionNormalizer;
+
+/**
+ * This class maps the dto {@link FunctionNormalizerDto} to and from the entity {@link FunctionNormalizer}.
+ * 
+ */
+@SuppressWarnings("all")
+public class FunctionNormalizerDtoMapper<DTO extends FunctionNormalizerDto, ENTITY extends FunctionNormalizer> implements IMapper<DTO, ENTITY> {
+  private IMapperAccess mapperAccess;
+  
+  /**
+   * Returns the mapper instance that may map between the given dto and entity. Or <code>null</code> if no mapper is available.
+   * 
+   * @param dtoClass - the class of the dto that should be mapped
+   * @param entityClass - the class of the entity that should be mapped
+   * @return the mapper instance or <code>null</code>
+   */
+  protected <D, E> IMapper<D, E> getToDtoMapper(final Class<D> dtoClass, final Class<E> entityClass) {
+    return mapperAccess.getToDtoMapper(dtoClass, entityClass);
+  }
+  
+  /**
+   * Returns the mapper instance that may map between the given dto and entity. Or <code>null</code> if no mapper is available.
+   * 
+   * @param dtoClass - the class of the dto that should be mapped
+   * @param entityClass - the class of the entity that should be mapped
+   * @return the mapper instance or <code>null</code>
+   */
+  protected <D, E> IMapper<D, E> getToEntityMapper(final Class<D> dtoClass, final Class<E> entityClass) {
+    return mapperAccess.getToEntityMapper(dtoClass, entityClass);
+  }
+  
+  /**
+   * Called by OSGi-DS. Binds the mapper access service.
+   * 
+   * @param service - The mapper access service
+   * 
+   */
+  protected void bindMapperAccess(final IMapperAccess mapperAccess) {
+    this.mapperAccess = mapperAccess;
+  }
+  
+  /**
+   * Called by OSGi-DS. Binds the mapper access service.
+   * 
+   * @param service - The mapper access service
+   * 
+   */
+  protected void unbindMapperAccess(final IMapperAccess mapperAccess) {
+    this.mapperAccess = null;
+  }
+  
+  /**
+   * Creates a new instance of the entity
+   */
+  public FunctionNormalizer createEntity() {
+    return new FunctionNormalizer();
+  }
+  
+  /**
+   * Creates a new instance of the dto
+   */
+  public FunctionNormalizerDto createDto() {
+    return new FunctionNormalizerDto();
+  }
+  
+  /**
+   * Maps the entity {@link FunctionNormalizer} to the dto {@link FunctionNormalizerDto}.
+   * 
+   * @param dto - The target dto
+   * @param entity - The source entity
+   * @param context - The context to get information about depth,...
+   * 
+   */
+  public void mapToDTO(final FunctionNormalizerDto dto, final FunctionNormalizer entity, final MappingContext context) {
+    if(context == null){
+    	throw new IllegalArgumentException("Please pass a context!");
+    }
+    dto.setName(toDto_name(entity, context));
+    dto.setReturnType(toDto_returnType(entity, context));
+  }
+  
+  /**
+   * Maps the dto {@link FunctionNormalizerDto} to the entity {@link FunctionNormalizer}.
+   * 
+   * @param dto - The source dto
+   * @param entity - The target entity
+   * @param context - The context to get information about depth,...
+   * 
+   */
+  public void mapToEntity(final FunctionNormalizerDto dto, final FunctionNormalizer entity, final MappingContext context) {
+    if(context == null){
+    	throw new IllegalArgumentException("Please pass a context!");
+    }
+    
+    
+    entity.setName(toEntity_name(dto, context));
+    entity.setReturnType(toEntity_returnType(dto, context));
+  }
+  
+  /**
+   * Maps the property name from the given entity to dto property.
+   * 
+   * @param in - The source entity
+   * @param context - The context to get information about depth,...
+   * @return the mapped value
+   * 
+   */
+  protected String toDto_name(final FunctionNormalizer in, final MappingContext context) {
+    return in.getName();
+  }
+  
+  /**
+   * Maps the property name from the given entity to dto property.
+   * 
+   * @param in - The source entity
+   * @param context - The context to get information about depth,...
+   * @return the mapped value
+   * 
+   */
+  protected String toEntity_name(final FunctionNormalizerDto in, final MappingContext context) {
+    return in.getName();
+  }
+  
+  /**
+   * Maps the property returnType from the given entity to dto property.
+   * 
+   * @param in - The source entity
+   * @param context - The context to get information about depth,...
+   * @return the mapped value
+   * 
+   */
+  protected String toDto_returnType(final FunctionNormalizer in, final MappingContext context) {
+    return in.getReturnType();
+  }
+  
+  /**
+   * Maps the property returnType from the given entity to dto property.
+   * 
+   * @param in - The source entity
+   * @param context - The context to get information about depth,...
+   * @return the mapped value
+   * 
+   */
+  protected String toEntity_returnType(final FunctionNormalizerDto in, final MappingContext context) {
+    return in.getReturnType();
+  }
+  
+  public String createDtoHash(final Object in) {
+    throw new UnsupportedOperationException("No id attribute available");
+  }
+  
+  public String createEntityHash(final Object in) {
+    throw new UnsupportedOperationException("No id attribute available");
+  }
+}
diff --git a/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/dtos/mapper/FunctionTypeDtoMapper.java b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/dtos/mapper/FunctionTypeDtoMapper.java
new file mode 100644
index 0000000..37bff82
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/dtos/mapper/FunctionTypeDtoMapper.java
@@ -0,0 +1,147 @@
+/**
+ * Copyright (c) 2015 - 2016 - Loetz GmbH&Co.KG, 69115 Heidelberg, Germany
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ * 
+ *  Contributors:
+ * 	   Loetz GmbH&Co.KG - Initial implementation
+ */
+package org.eclipse.osbp.utils.functionnormalizer.dtos.mapper;
+
+import org.eclipse.osbp.dsl.dto.lib.IMapper;
+import org.eclipse.osbp.dsl.dto.lib.IMapperAccess;
+import org.eclipse.osbp.dsl.dto.lib.MappingContext;
+import org.eclipse.osbp.utils.functionnormalizer.dtos.FunctionTypeDto;
+import org.eclipse.osbp.utils.functionnormalizer.entities.FunctionType;
+
+/**
+ * This class maps the dto {@link FunctionTypeDto} to and from the entity {@link FunctionType}.
+ * 
+ */
+@SuppressWarnings("all")
+public class FunctionTypeDtoMapper<DTO extends FunctionTypeDto, ENTITY extends FunctionType> implements IMapper<DTO, ENTITY> {
+  private IMapperAccess mapperAccess;
+  
+  /**
+   * Returns the mapper instance that may map between the given dto and entity. Or <code>null</code> if no mapper is available.
+   * 
+   * @param dtoClass - the class of the dto that should be mapped
+   * @param entityClass - the class of the entity that should be mapped
+   * @return the mapper instance or <code>null</code>
+   */
+  protected <D, E> IMapper<D, E> getToDtoMapper(final Class<D> dtoClass, final Class<E> entityClass) {
+    return mapperAccess.getToDtoMapper(dtoClass, entityClass);
+  }
+  
+  /**
+   * Returns the mapper instance that may map between the given dto and entity. Or <code>null</code> if no mapper is available.
+   * 
+   * @param dtoClass - the class of the dto that should be mapped
+   * @param entityClass - the class of the entity that should be mapped
+   * @return the mapper instance or <code>null</code>
+   */
+  protected <D, E> IMapper<D, E> getToEntityMapper(final Class<D> dtoClass, final Class<E> entityClass) {
+    return mapperAccess.getToEntityMapper(dtoClass, entityClass);
+  }
+  
+  /**
+   * Called by OSGi-DS. Binds the mapper access service.
+   * 
+   * @param service - The mapper access service
+   * 
+   */
+  protected void bindMapperAccess(final IMapperAccess mapperAccess) {
+    this.mapperAccess = mapperAccess;
+  }
+  
+  /**
+   * Called by OSGi-DS. Binds the mapper access service.
+   * 
+   * @param service - The mapper access service
+   * 
+   */
+  protected void unbindMapperAccess(final IMapperAccess mapperAccess) {
+    this.mapperAccess = null;
+  }
+  
+  /**
+   * Creates a new instance of the entity
+   */
+  public FunctionType createEntity() {
+    return new FunctionType();
+  }
+  
+  /**
+   * Creates a new instance of the dto
+   */
+  public FunctionTypeDto createDto() {
+    return new FunctionTypeDto();
+  }
+  
+  /**
+   * Maps the entity {@link FunctionType} to the dto {@link FunctionTypeDto}.
+   * 
+   * @param dto - The target dto
+   * @param entity - The source entity
+   * @param context - The context to get information about depth,...
+   * 
+   */
+  public void mapToDTO(final FunctionTypeDto dto, final FunctionType entity, final MappingContext context) {
+    if(context == null){
+    	throw new IllegalArgumentException("Please pass a context!");
+    }
+    dto.setName(toDto_name(entity, context));
+  }
+  
+  /**
+   * Maps the dto {@link FunctionTypeDto} to the entity {@link FunctionType}.
+   * 
+   * @param dto - The source dto
+   * @param entity - The target entity
+   * @param context - The context to get information about depth,...
+   * 
+   */
+  public void mapToEntity(final FunctionTypeDto dto, final FunctionType entity, final MappingContext context) {
+    if(context == null){
+    	throw new IllegalArgumentException("Please pass a context!");
+    }
+    
+    
+    entity.setName(toEntity_name(dto, context));
+  }
+  
+  /**
+   * Maps the property name from the given entity to dto property.
+   * 
+   * @param in - The source entity
+   * @param context - The context to get information about depth,...
+   * @return the mapped value
+   * 
+   */
+  protected String toDto_name(final FunctionType in, final MappingContext context) {
+    return in.getName();
+  }
+  
+  /**
+   * Maps the property name from the given entity to dto property.
+   * 
+   * @param in - The source entity
+   * @param context - The context to get information about depth,...
+   * @return the mapped value
+   * 
+   */
+  protected String toEntity_name(final FunctionTypeDto in, final MappingContext context) {
+    return in.getName();
+  }
+  
+  public String createDtoHash(final Object in) {
+    throw new UnsupportedOperationException("No id attribute available");
+  }
+  
+  public String createEntityHash(final Object in) {
+    throw new UnsupportedOperationException("No id attribute available");
+  }
+}
diff --git a/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/dtos/mapper/FunctionTypingDtoMapper.java b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/dtos/mapper/FunctionTypingDtoMapper.java
new file mode 100644
index 0000000..b3df7cc
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/dtos/mapper/FunctionTypingDtoMapper.java
@@ -0,0 +1,258 @@
+/**
+ * Copyright (c) 2015 - 2016 - Loetz GmbH&Co.KG, 69115 Heidelberg, Germany
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ * 
+ *  Contributors:
+ * 	   Loetz GmbH&Co.KG - Initial implementation
+ */
+package org.eclipse.osbp.utils.functionnormalizer.dtos.mapper;
+
+import java.util.List;
+import org.eclipse.osbp.dsl.dto.lib.IMapper;
+import org.eclipse.osbp.dsl.dto.lib.IMapperAccess;
+import org.eclipse.osbp.dsl.dto.lib.MappingContext;
+import org.eclipse.osbp.utils.functionnormalizer.dtos.FunctionNormalizerDto;
+import org.eclipse.osbp.utils.functionnormalizer.dtos.FunctionTypeDto;
+import org.eclipse.osbp.utils.functionnormalizer.dtos.FunctionTypingDto;
+import org.eclipse.osbp.utils.functionnormalizer.entities.FunctionNormalizer;
+import org.eclipse.osbp.utils.functionnormalizer.entities.FunctionType;
+import org.eclipse.osbp.utils.functionnormalizer.entities.FunctionTyping;
+
+/**
+ * This class maps the dto {@link FunctionTypingDto} to and from the entity {@link FunctionTyping}.
+ * 
+ */
+@SuppressWarnings("all")
+public class FunctionTypingDtoMapper<DTO extends FunctionTypingDto, ENTITY extends FunctionTyping> implements IMapper<DTO, ENTITY> {
+  private IMapperAccess mapperAccess;
+  
+  /**
+   * Returns the mapper instance that may map between the given dto and entity. Or <code>null</code> if no mapper is available.
+   * 
+   * @param dtoClass - the class of the dto that should be mapped
+   * @param entityClass - the class of the entity that should be mapped
+   * @return the mapper instance or <code>null</code>
+   */
+  protected <D, E> IMapper<D, E> getToDtoMapper(final Class<D> dtoClass, final Class<E> entityClass) {
+    return mapperAccess.getToDtoMapper(dtoClass, entityClass);
+  }
+  
+  /**
+   * Returns the mapper instance that may map between the given dto and entity. Or <code>null</code> if no mapper is available.
+   * 
+   * @param dtoClass - the class of the dto that should be mapped
+   * @param entityClass - the class of the entity that should be mapped
+   * @return the mapper instance or <code>null</code>
+   */
+  protected <D, E> IMapper<D, E> getToEntityMapper(final Class<D> dtoClass, final Class<E> entityClass) {
+    return mapperAccess.getToEntityMapper(dtoClass, entityClass);
+  }
+  
+  /**
+   * Called by OSGi-DS. Binds the mapper access service.
+   * 
+   * @param service - The mapper access service
+   * 
+   */
+  protected void bindMapperAccess(final IMapperAccess mapperAccess) {
+    this.mapperAccess = mapperAccess;
+  }
+  
+  /**
+   * Called by OSGi-DS. Binds the mapper access service.
+   * 
+   * @param service - The mapper access service
+   * 
+   */
+  protected void unbindMapperAccess(final IMapperAccess mapperAccess) {
+    this.mapperAccess = null;
+  }
+  
+  /**
+   * Creates a new instance of the entity
+   */
+  public FunctionTyping createEntity() {
+    return new FunctionTyping();
+  }
+  
+  /**
+   * Creates a new instance of the dto
+   */
+  public FunctionTypingDto createDto() {
+    return new FunctionTypingDto();
+  }
+  
+  /**
+   * Maps the entity {@link FunctionTyping} to the dto {@link FunctionTypingDto}.
+   * 
+   * @param dto - The target dto
+   * @param entity - The source entity
+   * @param context - The context to get information about depth,...
+   * 
+   */
+  public void mapToDTO(final FunctionTypingDto dto, final FunctionTyping entity, final MappingContext context) {
+    if(context == null){
+    	throw new IllegalArgumentException("Please pass a context!");
+    }
+  }
+  
+  /**
+   * Maps the dto {@link FunctionTypingDto} to the entity {@link FunctionTyping}.
+   * 
+   * @param dto - The source dto
+   * @param entity - The target entity
+   * @param context - The context to get information about depth,...
+   * 
+   */
+  public void mapToEntity(final FunctionTypingDto dto, final FunctionTyping entity, final MappingContext context) {
+    if(context == null){
+    	throw new IllegalArgumentException("Please pass a context!");
+    }
+    
+    
+    if(entity.getTypes().isEmpty()) {
+    	List<FunctionType> types_entities = new java.util.ArrayList<FunctionType>();
+    	for(FunctionType _entityValue : toEntity_types(dto, context)) {
+    		types_entities.add(_entityValue);
+    	}
+    	entity.setTypes(types_entities);
+    }
+    if(entity.getNormalizer().isEmpty()) {
+    	List<FunctionNormalizer> normalizer_entities = new java.util.ArrayList<FunctionNormalizer>();
+    	for(FunctionNormalizer _entityValue : toEntity_normalizer(dto, context)) {
+    		normalizer_entities.add(_entityValue);
+    	}
+    	entity.setNormalizer(normalizer_entities);
+    }
+  }
+  
+  /**
+   * Maps the property types from the given entity to the dto.
+   * 
+   * @param in - The source entity
+   * @param context - The context to get information about depth,...
+   * @return A list of mapped dtos
+   * 
+   */
+  protected List<FunctionTypeDto> toDto_types(final FunctionTyping in, final MappingContext context) {
+    org.eclipse.osbp.dsl.dto.lib.IMapper<FunctionTypeDto, FunctionType> mapper = getToDtoMapper(FunctionTypeDto.class, FunctionType.class);
+    if(mapper == null) {
+    	throw new IllegalStateException("Mapper must not be null!");
+    } 
+    
+    if (context.isDetectRecursion(FunctionTypeDto.class)) {
+    	return java.util.Collections.emptyList();
+    }
+    
+    context.increaseLevel();
+    List<FunctionTypeDto> results = new java.util.ArrayList<FunctionTypeDto>();
+    for (FunctionType _entity : in.getTypes()) {
+    	FunctionTypeDto _dto = context.get(mapper.createDtoHash(_entity));
+    	if (_dto == null) {
+    		_dto = mapper.createDto();
+    		mapper.mapToDTO(_dto, _entity, context);
+    	} else {
+    		if(context.isRefresh()){
+    			mapper.mapToDTO(_dto, _entity, context);
+    		}
+    	}
+    	results.add(_dto);
+    }
+    context.decreaseLevel();
+    return results;
+  }
+  
+  /**
+   * Maps the property types from the given dto to the entity.
+   * 
+   * @param in - The source dto
+   * @param context - The context to get information about depth,...
+   * @return A list of mapped entities
+   * 
+   */
+  protected List<FunctionType> toEntity_types(final FunctionTypingDto in, final MappingContext context) {
+    org.eclipse.osbp.dsl.dto.lib.IMapper<FunctionTypeDto, FunctionType> mapper = getToEntityMapper(FunctionTypeDto.class, FunctionType.class);
+    if(mapper == null) {
+    	throw new IllegalStateException("Mapper must not be null!");
+    }
+    
+    List<FunctionType> results = new java.util.ArrayList<FunctionType>();
+    for (FunctionTypeDto _dto : in.getTypes()) {
+    	FunctionType _entity = mapper.createEntity();
+    	mapper.mapToEntity(_dto, _entity, context);
+    	results.add(_entity);
+    }
+    return results;
+  }
+  
+  /**
+   * Maps the property normalizer from the given entity to the dto.
+   * 
+   * @param in - The source entity
+   * @param context - The context to get information about depth,...
+   * @return A list of mapped dtos
+   * 
+   */
+  protected List<FunctionNormalizerDto> toDto_normalizer(final FunctionTyping in, final MappingContext context) {
+    org.eclipse.osbp.dsl.dto.lib.IMapper<FunctionNormalizerDto, FunctionNormalizer> mapper = getToDtoMapper(FunctionNormalizerDto.class, FunctionNormalizer.class);
+    if(mapper == null) {
+    	throw new IllegalStateException("Mapper must not be null!");
+    } 
+    
+    if (context.isDetectRecursion(FunctionNormalizerDto.class)) {
+    	return java.util.Collections.emptyList();
+    }
+    
+    context.increaseLevel();
+    List<FunctionNormalizerDto> results = new java.util.ArrayList<FunctionNormalizerDto>();
+    for (FunctionNormalizer _entity : in.getNormalizer()) {
+    	FunctionNormalizerDto _dto = context.get(mapper.createDtoHash(_entity));
+    	if (_dto == null) {
+    		_dto = mapper.createDto();
+    		mapper.mapToDTO(_dto, _entity, context);
+    	} else {
+    		if(context.isRefresh()){
+    			mapper.mapToDTO(_dto, _entity, context);
+    		}
+    	}
+    	results.add(_dto);
+    }
+    context.decreaseLevel();
+    return results;
+  }
+  
+  /**
+   * Maps the property normalizer from the given dto to the entity.
+   * 
+   * @param in - The source dto
+   * @param context - The context to get information about depth,...
+   * @return A list of mapped entities
+   * 
+   */
+  protected List<FunctionNormalizer> toEntity_normalizer(final FunctionTypingDto in, final MappingContext context) {
+    org.eclipse.osbp.dsl.dto.lib.IMapper<FunctionNormalizerDto, FunctionNormalizer> mapper = getToEntityMapper(FunctionNormalizerDto.class, FunctionNormalizer.class);
+    if(mapper == null) {
+    	throw new IllegalStateException("Mapper must not be null!");
+    }
+    
+    List<FunctionNormalizer> results = new java.util.ArrayList<FunctionNormalizer>();
+    for (FunctionNormalizerDto _dto : in.getNormalizer()) {
+    	FunctionNormalizer _entity = mapper.createEntity();
+    	mapper.mapToEntity(_dto, _entity, context);
+    	results.add(_entity);
+    }
+    return results;
+  }
+  
+  public String createDtoHash(final Object in) {
+    throw new UnsupportedOperationException("No id attribute available");
+  }
+  
+  public String createEntityHash(final Object in) {
+    throw new UnsupportedOperationException("No id attribute available");
+  }
+}
diff --git a/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/entities/FunctionNormalizer.java b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/entities/FunctionNormalizer.java
new file mode 100644
index 0000000..1a82c6c
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/entities/FunctionNormalizer.java
@@ -0,0 +1,100 @@
+/**
+ * @date           08.07.2014
+ *  @author         dominguez
+ */
+package org.eclipse.osbp.utils.functionnormalizer.entities;
+
+import java.io.Serializable;
+import javax.persistence.Basic;
+import javax.persistence.Embeddable;
+import javax.persistence.Transient;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import org.eclipse.osbp.dsl.common.datatypes.IBean;
+import org.eclipse.osbp.runtime.common.annotations.Dispose;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@Embeddable
+@SuppressWarnings("all")
+public class FunctionNormalizer implements Serializable, IBean {
+  @Transient
+  @Dispose
+  private boolean disposed;
+  
+  @XmlAttribute
+  @Basic
+  private String name;
+  
+  @XmlAttribute
+  @Basic
+  private String returnType;
+  
+  /**
+   * @return true, if the object is disposed. 
+   * Disposed means, that it is prepared for garbage collection and may not be used anymore. 
+   * Accessing objects that are already disposed will cause runtime exceptions.
+   * 
+   */
+  @Dispose
+  public boolean isDisposed() {
+    return this.disposed;
+  }
+  
+  /**
+   * Checks whether the object is disposed.
+   * @throws RuntimeException if the object is disposed.
+   */
+  private void checkDisposed() {
+    if (isDisposed()) {
+      throw new RuntimeException("Object already disposed: " + this);
+    }
+  }
+  
+  /**
+   * Calling dispose will destroy that instance. The internal state will be 
+   * set to 'disposed' and methods of that object must not be used anymore. 
+   * Each call will result in runtime exceptions.<br>
+   * If this object keeps composition containments, these will be disposed too. 
+   * So the whole composition containment tree will be disposed on calling this method.
+   */
+  @Dispose
+  public void dispose() {
+    if (isDisposed()) {
+      return;
+    }
+    disposed = true;
+  }
+  
+  /**
+   * @return Returns the name property or <code>null</code> if not present.
+   */
+  public String getName() {
+    checkDisposed();
+    return this.name;
+  }
+  
+  /**
+   * Sets the name property to this instance.
+   */
+  public void setName(final String name) {
+    checkDisposed();
+    this.name = name;
+  }
+  
+  /**
+   * @return Returns the returnType property or <code>null</code> if not present.
+   */
+  public String getReturnType() {
+    checkDisposed();
+    return this.returnType;
+  }
+  
+  /**
+   * Sets the returnType property to this instance.
+   */
+  public void setReturnType(final String returnType) {
+    checkDisposed();
+    this.returnType = returnType;
+  }
+}
diff --git a/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/entities/FunctionType.java b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/entities/FunctionType.java
new file mode 100644
index 0000000..babad83
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/entities/FunctionType.java
@@ -0,0 +1,80 @@
+/**
+ * @date           08.07.2014
+ *  @author         dominguez
+ */
+package org.eclipse.osbp.utils.functionnormalizer.entities;
+
+import java.io.Serializable;
+import javax.persistence.Basic;
+import javax.persistence.Embeddable;
+import javax.persistence.Transient;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import org.eclipse.osbp.dsl.common.datatypes.IBean;
+import org.eclipse.osbp.runtime.common.annotations.Dispose;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@Embeddable
+@SuppressWarnings("all")
+public class FunctionType implements Serializable, IBean {
+  @Transient
+  @Dispose
+  private boolean disposed;
+  
+  @XmlAttribute
+  @Basic
+  private String name;
+  
+  /**
+   * @return true, if the object is disposed. 
+   * Disposed means, that it is prepared for garbage collection and may not be used anymore. 
+   * Accessing objects that are already disposed will cause runtime exceptions.
+   * 
+   */
+  @Dispose
+  public boolean isDisposed() {
+    return this.disposed;
+  }
+  
+  /**
+   * Checks whether the object is disposed.
+   * @throws RuntimeException if the object is disposed.
+   */
+  private void checkDisposed() {
+    if (isDisposed()) {
+      throw new RuntimeException("Object already disposed: " + this);
+    }
+  }
+  
+  /**
+   * Calling dispose will destroy that instance. The internal state will be 
+   * set to 'disposed' and methods of that object must not be used anymore. 
+   * Each call will result in runtime exceptions.<br>
+   * If this object keeps composition containments, these will be disposed too. 
+   * So the whole composition containment tree will be disposed on calling this method.
+   */
+  @Dispose
+  public void dispose() {
+    if (isDisposed()) {
+      return;
+    }
+    disposed = true;
+  }
+  
+  /**
+   * @return Returns the name property or <code>null</code> if not present.
+   */
+  public String getName() {
+    checkDisposed();
+    return this.name;
+  }
+  
+  /**
+   * Sets the name property to this instance.
+   */
+  public void setName(final String name) {
+    checkDisposed();
+    this.name = name;
+  }
+}
diff --git a/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/entities/FunctionTyping.java b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/entities/FunctionTyping.java
new file mode 100644
index 0000000..6608119
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/entities/FunctionTyping.java
@@ -0,0 +1,219 @@
+/**
+ * @date           08.07.2014
+ *  @author         dominguez
+ */
+package org.eclipse.osbp.utils.functionnormalizer.entities;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import javax.persistence.Basic;
+import javax.persistence.ElementCollection;
+import javax.persistence.Embeddable;
+import javax.persistence.Embedded;
+import javax.persistence.Transient;
+import javax.validation.Valid;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlRootElement;
+import org.eclipse.osbp.dsl.common.datatypes.IBean;
+import org.eclipse.osbp.runtime.common.annotations.Dispose;
+import org.eclipse.osbp.utils.functionnormalizer.entities.FunctionNormalizer;
+import org.eclipse.osbp.utils.functionnormalizer.entities.FunctionType;
+
+@XmlRootElement
+@XmlAccessorType(XmlAccessType.FIELD)
+@Embeddable
+@SuppressWarnings("all")
+public class FunctionTyping implements Serializable, IBean {
+  @Transient
+  @Dispose
+  private boolean disposed;
+  
+  @XmlElementWrapper(name = "functionType")
+  @XmlElement(name = "key")
+  @Basic
+  @Embedded
+  @ElementCollection
+  @Valid
+  private List<FunctionType> types;
+  
+  @XmlElementWrapper(name = "normalizer")
+  @XmlElement(name = "function")
+  @Basic
+  @Embedded
+  @ElementCollection
+  @Valid
+  private List<FunctionNormalizer> normalizer;
+  
+  /**
+   * @return true, if the object is disposed. 
+   * Disposed means, that it is prepared for garbage collection and may not be used anymore. 
+   * Accessing objects that are already disposed will cause runtime exceptions.
+   * 
+   */
+  @Dispose
+  public boolean isDisposed() {
+    return this.disposed;
+  }
+  
+  /**
+   * Checks whether the object is disposed.
+   * @throws RuntimeException if the object is disposed.
+   */
+  private void checkDisposed() {
+    if (isDisposed()) {
+      throw new RuntimeException("Object already disposed: " + this);
+    }
+  }
+  
+  /**
+   * Calling dispose will destroy that instance. The internal state will be 
+   * set to 'disposed' and methods of that object must not be used anymore. 
+   * Each call will result in runtime exceptions.<br>
+   * If this object keeps composition containments, these will be disposed too. 
+   * So the whole composition containment tree will be disposed on calling this method.
+   */
+  @Dispose
+  public void dispose() {
+    if (isDisposed()) {
+      return;
+    }
+    disposed = true;
+  }
+  
+  /**
+   * @return Returns an unmodifiable list of types.
+   */
+  public List<FunctionType> getTypes() {
+    checkDisposed();
+    return Collections.unmodifiableList(internalGetTypes());
+  }
+  
+  /**
+   * Sets the given types to the object. Currently contained types instances will be removed.
+   * 
+   * @param types the list of new instances
+   */
+  public void setTypes(final List<FunctionType> types) {
+    // remove the old functionType
+    for(FunctionType oldElement : new ArrayList<FunctionType>(this.internalGetTypes())){
+      removeFromTypes(oldElement);
+    }
+    
+    // add the new functionType
+    for(FunctionType newElement : types){
+      addToTypes(newElement);
+    }
+  }
+  
+  /**
+   * Returns the list of <code>FunctionType</code>s thereby lazy initializing it.
+   */
+  private List<FunctionType> internalGetTypes() {
+    if (this.types == null) {
+      this.types = new ArrayList<FunctionType>();
+    }
+    return this.types;
+  }
+  
+  /**
+   * Adds the given functionType to this object. <p>
+   * 
+   */
+  public void addToTypes(final FunctionType functionType) {
+    checkDisposed();
+    if (!getTypes().contains(functionType)){
+      internalAddToTypes(functionType);
+    }
+    
+  }
+  
+  public void removeFromTypes(final FunctionType functionType) {
+    checkDisposed();
+    internalGetTypes().remove(functionType);
+  }
+  
+  /**
+   * For internal use only!
+   */
+  void internalAddToTypes(final FunctionType functionType) {
+    internalGetTypes().add(functionType);
+  }
+  
+  /**
+   * For internal use only!
+   */
+  void internalRemoveFromTypes(final FunctionType functionType) {
+    internalGetTypes().remove(functionType);
+  }
+  
+  /**
+   * @return Returns an unmodifiable list of normalizer.
+   */
+  public List<FunctionNormalizer> getNormalizer() {
+    checkDisposed();
+    return Collections.unmodifiableList(internalGetNormalizer());
+  }
+  
+  /**
+   * Sets the given normalizer to the object. Currently contained normalizer instances will be removed.
+   * 
+   * @param normalizer the list of new instances
+   */
+  public void setNormalizer(final List<FunctionNormalizer> normalizer) {
+    // remove the old functionNormalizer
+    for(FunctionNormalizer oldElement : new ArrayList<FunctionNormalizer>(this.internalGetNormalizer())){
+      removeFromNormalizer(oldElement);
+    }
+    
+    // add the new functionNormalizer
+    for(FunctionNormalizer newElement : normalizer){
+      addToNormalizer(newElement);
+    }
+  }
+  
+  /**
+   * Returns the list of <code>FunctionNormalizer</code>s thereby lazy initializing it.
+   */
+  private List<FunctionNormalizer> internalGetNormalizer() {
+    if (this.normalizer == null) {
+      this.normalizer = new ArrayList<FunctionNormalizer>();
+    }
+    return this.normalizer;
+  }
+  
+  /**
+   * Adds the given functionNormalizer to this object. <p>
+   * 
+   */
+  public void addToNormalizer(final FunctionNormalizer functionNormalizer) {
+    checkDisposed();
+    if (!getNormalizer().contains(functionNormalizer)){
+      internalAddToNormalizer(functionNormalizer);
+    }
+    
+  }
+  
+  public void removeFromNormalizer(final FunctionNormalizer functionNormalizer) {
+    checkDisposed();
+    internalGetNormalizer().remove(functionNormalizer);
+  }
+  
+  /**
+   * For internal use only!
+   */
+  void internalAddToNormalizer(final FunctionNormalizer functionNormalizer) {
+    internalGetNormalizer().add(functionNormalizer);
+  }
+  
+  /**
+   * For internal use only!
+   */
+  void internalRemoveFromNormalizer(final FunctionNormalizer functionNormalizer) {
+    internalGetNormalizer().remove(functionNormalizer);
+  }
+}
diff --git a/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/entities/FunctionnormalizerEntitiesTranslator.java b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/entities/FunctionnormalizerEntitiesTranslator.java
new file mode 100644
index 0000000..b89dc8a
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/src-gen/org/eclipse/osbp/utils/functionnormalizer/entities/FunctionnormalizerEntitiesTranslator.java
@@ -0,0 +1,216 @@
+package org.eclipse.osbp.utils.functionnormalizer.entities;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.util.HashMap;
+import java.util.Locale;
+import org.eclipse.osbp.runtime.common.i18n.ITranslator;
+import org.slf4j.Logger;
+
+@SuppressWarnings("all")
+public class FunctionnormalizerEntitiesTranslator implements ITranslator {
+  private static Logger log = org.slf4j.LoggerFactory.getLogger("translations by translator");
+  
+  private static FunctionnormalizerEntitiesTranslator instance = null;
+  
+  private static Locale lastLocale = null;
+  
+  private PropertyChangeSupport pcs = new java.beans.PropertyChangeSupport(this);
+  
+  private HashMap<String, String> translations = new HashMap<String,String>() {{
+    		put("org.eclipse.osbp.utils.functionnormalizer.entities.function_normalizer","function_normalizer");
+    		put("org.eclipse.osbp.utils.functionnormalizer.entities.function_type","function_type");
+    		put("org.eclipse.osbp.utils.functionnormalizer.entities.function_typing","function_typing");
+    		put("org.eclipse.osbp.utils.functionnormalizer.entities.name","name");
+    		put("org.eclipse.osbp.utils.functionnormalizer.entities.normalizer","normalizer");
+    		put("org.eclipse.osbp.utils.functionnormalizer.entities.return_type","return_type");
+    		put("org.eclipse.osbp.utils.functionnormalizer.entities.types","types");
+    }};
+  
+  private static String function_normalizer;
+  
+  private static String function_type;
+  
+  private static String function_typing;
+  
+  private static String name;
+  
+  private static String normalizer;
+  
+  private static String return_type;
+  
+  private static String types;
+  
+  public static FunctionnormalizerEntitiesTranslator getInstance(final Locale locale) {
+    if(instance == null) {
+    	instance = new org.eclipse.osbp.utils.functionnormalizer.entities.FunctionnormalizerEntitiesTranslator();
+    	if (lastLocale == null) {
+    		instance.changeLocale(locale);
+    	}
+    }
+    return instance;
+  }
+  
+  public void addPropertyChangeListener(final PropertyChangeListener listener) {
+    this.pcs.addPropertyChangeListener(listener);
+  }
+  
+  public void removePropertyChangeListener(final PropertyChangeListener listener) {
+    this.pcs.removePropertyChangeListener(listener);
+  }
+  
+  public void mergeTranslations() {
+    
+  }
+  
+  public HashMap<String, String> getTranslations() {
+    return translations;
+  }
+  
+  public String getFunction_normalizer() {
+    if (log.isDebugEnabled()) log.debug("getFunction_normalizer returns:"+this.function_normalizer);
+    return this.function_normalizer;
+  }
+  
+  public String getFunction_type() {
+    if (log.isDebugEnabled()) log.debug("getFunction_type returns:"+this.function_type);
+    return this.function_type;
+  }
+  
+  public String getFunction_typing() {
+    if (log.isDebugEnabled()) log.debug("getFunction_typing returns:"+this.function_typing);
+    return this.function_typing;
+  }
+  
+  public String getName() {
+    if (log.isDebugEnabled()) log.debug("getName returns:"+this.name);
+    return this.name;
+  }
+  
+  public String getNormalizer() {
+    if (log.isDebugEnabled()) log.debug("getNormalizer returns:"+this.normalizer);
+    return this.normalizer;
+  }
+  
+  public String getReturn_type() {
+    if (log.isDebugEnabled()) log.debug("getReturn_type returns:"+this.return_type);
+    return this.return_type;
+  }
+  
+  public String getTypes() {
+    if (log.isDebugEnabled()) log.debug("getTypes returns:"+this.types);
+    return this.types;
+  }
+  
+  public void setFunction_normalizer(final String newFunction_normalizer) {
+    if (log.isDebugEnabled()) log.debug("setFunction_normalizer called:"+newFunction_normalizer);
+    String oldFunction_normalizer = this.function_normalizer;
+    this.function_normalizer = newFunction_normalizer;
+    translations.put("org.eclipse.osbp.utils.functionnormalizer.entities.function_normalizer", newFunction_normalizer);
+    this.pcs.firePropertyChange("function_normalizer", oldFunction_normalizer, newFunction_normalizer);
+  }
+  
+  public void setFunction_type(final String newFunction_type) {
+    if (log.isDebugEnabled()) log.debug("setFunction_type called:"+newFunction_type);
+    String oldFunction_type = this.function_type;
+    this.function_type = newFunction_type;
+    translations.put("org.eclipse.osbp.utils.functionnormalizer.entities.function_type", newFunction_type);
+    this.pcs.firePropertyChange("function_type", oldFunction_type, newFunction_type);
+  }
+  
+  public void setFunction_typing(final String newFunction_typing) {
+    if (log.isDebugEnabled()) log.debug("setFunction_typing called:"+newFunction_typing);
+    String oldFunction_typing = this.function_typing;
+    this.function_typing = newFunction_typing;
+    translations.put("org.eclipse.osbp.utils.functionnormalizer.entities.function_typing", newFunction_typing);
+    this.pcs.firePropertyChange("function_typing", oldFunction_typing, newFunction_typing);
+  }
+  
+  public void setName(final String newName) {
+    if (log.isDebugEnabled()) log.debug("setName called:"+newName);
+    String oldName = this.name;
+    this.name = newName;
+    translations.put("org.eclipse.osbp.utils.functionnormalizer.entities.name", newName);
+    this.pcs.firePropertyChange("name", oldName, newName);
+  }
+  
+  public void setNormalizer(final String newNormalizer) {
+    if (log.isDebugEnabled()) log.debug("setNormalizer called:"+newNormalizer);
+    String oldNormalizer = this.normalizer;
+    this.normalizer = newNormalizer;
+    translations.put("org.eclipse.osbp.utils.functionnormalizer.entities.normalizer", newNormalizer);
+    this.pcs.firePropertyChange("normalizer", oldNormalizer, newNormalizer);
+  }
+  
+  public void setReturn_type(final String newReturn_type) {
+    if (log.isDebugEnabled()) log.debug("setReturn_type called:"+newReturn_type);
+    String oldReturn_type = this.return_type;
+    this.return_type = newReturn_type;
+    translations.put("org.eclipse.osbp.utils.functionnormalizer.entities.return_type", newReturn_type);
+    this.pcs.firePropertyChange("return_type", oldReturn_type, newReturn_type);
+  }
+  
+  public void setTypes(final String newTypes) {
+    if (log.isDebugEnabled()) log.debug("setTypes called:"+newTypes);
+    String oldTypes = this.types;
+    this.types = newTypes;
+    translations.put("org.eclipse.osbp.utils.functionnormalizer.entities.types", newTypes);
+    this.pcs.firePropertyChange("types", oldTypes, newTypes);
+  }
+  
+  public void changeLocale(final Locale locale) {
+    // avoid unnecessary settings
+    if (locale == null) {
+    	if (log.isDebugEnabled()) log.debug("locale for org.eclipse.osbp.utils.functionnormalizer.entities is null.");
+    	return;
+    }
+    if (locale.equals(lastLocale)) {
+    	if (log.isDebugEnabled()) log.debug("locale for org.eclipse.osbp.utils.functionnormalizer.entities already set to "+locale.getDisplayLanguage());
+    	return;
+    }
+    if (log.isDebugEnabled()) log.debug("locale for org.eclipse.osbp.utils.functionnormalizer.entities set to "+locale.getDisplayLanguage());
+    lastLocale = locale;
+    // call the imported translators change locale method
+    try {
+    	java.util.ResourceBundle resource = java.util.ResourceBundle.getBundle("i18n.I18N", locale, getClass().getClassLoader());
+    	try {
+    		setFunction_normalizer(resource.getString("org.eclipse.osbp.utils.functionnormalizer.entities.function_normalizer"));
+    	} catch (Exception e) {
+    		log.error(getClass().getCanonicalName()+" - "+e.getLocalizedMessage());
+    	}
+    	try {
+    		setFunction_type(resource.getString("org.eclipse.osbp.utils.functionnormalizer.entities.function_type"));
+    	} catch (Exception e) {
+    		log.error(getClass().getCanonicalName()+" - "+e.getLocalizedMessage());
+    	}
+    	try {
+    		setFunction_typing(resource.getString("org.eclipse.osbp.utils.functionnormalizer.entities.function_typing"));
+    	} catch (Exception e) {
+    		log.error(getClass().getCanonicalName()+" - "+e.getLocalizedMessage());
+    	}
+    	try {
+    		setName(resource.getString("org.eclipse.osbp.utils.functionnormalizer.entities.name"));
+    	} catch (Exception e) {
+    		log.error(getClass().getCanonicalName()+" - "+e.getLocalizedMessage());
+    	}
+    	try {
+    		setNormalizer(resource.getString("org.eclipse.osbp.utils.functionnormalizer.entities.normalizer"));
+    	} catch (Exception e) {
+    		log.error(getClass().getCanonicalName()+" - "+e.getLocalizedMessage());
+    	}
+    	try {
+    		setReturn_type(resource.getString("org.eclipse.osbp.utils.functionnormalizer.entities.return_type"));
+    	} catch (Exception e) {
+    		log.error(getClass().getCanonicalName()+" - "+e.getLocalizedMessage());
+    	}
+    	try {
+    		setTypes(resource.getString("org.eclipse.osbp.utils.functionnormalizer.entities.types"));
+    	} catch (Exception e) {
+    		log.error(getClass().getCanonicalName()+" - "+e.getLocalizedMessage());
+    	}
+    } catch (java.util.MissingResourceException mre) {
+    	System.err.println(getClass().getCanonicalName()+" - "+mre.getLocalizedMessage());
+    }
+    
+  }
+}
diff --git a/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/Activator.java b/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/Activator.java
new file mode 100644
index 0000000..8e1ae18
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/Activator.java
@@ -0,0 +1,56 @@
+/*
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the terms of the Eclipse Public License v1.0       
+ *  which accompanies this distribution, and is available at                  
+ *  http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ *  Contributors:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.utils.functionnormalizer;
+
+import org.eclipse.osbp.gitinfo.Loginfo;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class Activator.
+ */
+public class Activator implements BundleActivator {
+
+	/** The context. */
+	private static BundleContext context;
+
+	/**
+	 * Gets the context.
+	 *
+	 * @return the context
+	 */
+	static BundleContext getContext() {
+		return context;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext bundleContext) throws Exception {
+		Loginfo li = new Loginfo();
+		li.print( Activator.class.getCanonicalName(), Activator.class.getClassLoader());
+		Activator.context = bundleContext;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext bundleContext) throws Exception {
+		Activator.context = null;
+	}
+
+}
diff --git a/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/FunctionNormalizer.dto b/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/FunctionNormalizer.dto
new file mode 100644
index 0000000..d1edc9d
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/FunctionNormalizer.dto
@@ -0,0 +1,32 @@
+/**
+*                                                                            
+* Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+*                                                                            
+* All rights reserved. This program and the accompanying materials           
+* are made available under the terms of the Eclipse Public License v1.0       
+* which accompanies this distribution, and is available at                  
+* http://www.eclipse.org/legal/epl-v10.html                                 
+*                                                                            
+* Contributors:   
+* Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+*/
+package org.eclipse.osbp.utils.functionnormalizer.dtos {
+	import org.eclipse.osbp.utils.functionnormalizer.entities.*;
+	autoDto FunctionNormalizerDto wraps FunctionNormalizer {
+
+		inherit var name
+		inherit var returnType
+	}
+
+	autoDto FunctionTypeDto wraps FunctionType {
+
+		inherit var name
+	}
+
+	autoDto FunctionTypingDto wraps FunctionTyping {
+
+		inherit ref types mapto FunctionTypeDto
+		inherit ref normalizer mapto FunctionNormalizerDto
+	}
+
+}
diff --git a/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/FunctionNormalizer.entity b/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/FunctionNormalizer.entity
new file mode 100644
index 0000000..04a7099
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/FunctionNormalizer.entity
@@ -0,0 +1,60 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the terms of the Eclipse Public License v1.0       
+ *  which accompanies this distribution, and is available at                  
+ *  http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ *  Contributors:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *     Jose Dominguez (Compex Systemhaus GmbH) - ongoing development 
+ */
+ 
+/** 
+ *  @date           08.07.2014
+ *  @author         dominguez 
+ */
+ 
+package org.eclipse.osbp.utils.functionnormalizer.entities {
+ 
+	import javax.xml.bind.annotation.*;
+	import org.eclipse.osbp.utils.blob.datatypes.*;
+			
+	@XmlAccessorType(XmlAccessType.FIELD)
+	bean FunctionNormalizer {
+		@XmlAttribute
+		var String name;
+		@XmlAttribute
+		var String returnType;
+	}
+	  
+	@XmlAccessorType(XmlAccessType.FIELD)
+	bean FunctionType {
+		@XmlAttribute
+		var String name;
+	}
+	
+	@XmlRootElement
+	@XmlAccessorType(XmlAccessType.FIELD)
+	bean FunctionTyping {
+		@XmlElementWrapper(name = "functionType")
+		@XmlElement(name = "key")
+		ref FunctionType[*] types;
+		@XmlElementWrapper(name = "normalizer")
+		@XmlElement(name = "function")
+		ref FunctionNormalizer[*] normalizer;
+	}
+	 	
+} 
+
+
+
+
+
+
+
+
+
+
diff --git a/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/FunctionNormalizer.service b/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/FunctionNormalizer.service
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/FunctionNormalizer.service
diff --git a/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/FunctionTypes.xml b/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/FunctionTypes.xml
new file mode 100644
index 0000000..b12193e
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/FunctionTypes.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<functionTyping
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:noNamespaceSchemaLocation="FunctionTypes.xsd"
+>
+	<functionType>
+		<key name="functionCss"/>
+		<key name="functionConverter"/>
+		<key name="functionImagePicker"/>
+	</functionType>
+	<normalizer>
+		<function name="booleanFunction" returnType="boolean"/>
+		<function name="StringFunction" returnType="String"/>
+	</normalizer>
+</functionTyping>
\ No newline at end of file
diff --git a/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/FunctionTypes.xsd b/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/FunctionTypes.xsd
new file mode 100644
index 0000000..b19c12c
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/FunctionTypes.xsd
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+	<xs:element name="functionTyping">
+        <xs:complexType>
+			<xs:sequence>
+				<xs:element name="functionType">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="key" maxOccurs="unbounded">
+								<xs:complexType>
+									<xs:attribute name="name" type="xs:string"/>
+								</xs:complexType>
+							</xs:element>
+						</xs:sequence>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="normalizer">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="function" maxOccurs="unbounded">
+								<xs:complexType>
+									<xs:attribute name="returnType" type="xs:string"/>
+									<xs:attribute name="name" type="xs:string"/>
+								</xs:complexType>
+							</xs:element>
+						</xs:sequence>
+					</xs:complexType>
+				</xs:element>
+			</xs:sequence>
+		</xs:complexType>
+   </xs:element>
+</xs:schema>
\ No newline at end of file
diff --git a/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/api/FunctionTypingAPI.java b/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/api/FunctionTypingAPI.java
new file mode 100644
index 0000000..c72a626
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/api/FunctionTypingAPI.java
@@ -0,0 +1,238 @@
+/*
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the terms of the Eclipse Public License v1.0       
+ *  which accompanies this distribution, and is available at                  
+ *  http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ *  Contributors:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+
+package org.eclipse.osbp.utils.functionnormalizer.api;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.List;
+
+//import javax.persistence.Id;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
+
+import org.eclipse.osbp.utils.functionnormalizer.entities.FunctionNormalizer;
+import org.eclipse.osbp.utils.functionnormalizer.entities.FunctionType;
+import org.eclipse.osbp.utils.functionnormalizer.entities.FunctionTyping;
+
+/**
+ * BlobTypingAPI is a API that provides predefined blob typing data that are
+ * required to be able to work with Blob objects.
+ * 
+ * The predefined data stored in a blob typing xml file will be read out and
+ * will be filled into the corresponding blob typing java objects via JAXB.
+ * 
+ * @date   08.07.2014
+ * @author dominguez
+ * 
+ */
+public class FunctionTypingAPI {
+
+	private FunctionTyping functionTyping;
+	private final int FUNCTION_CSS = 0;
+	private final int FUNCTION_CONVERTER = 1;
+	private final int FUNCTION_IMAGE_PICKER = 2;
+	
+	/**
+	 * Preferred constructor without any required parameter due to best knowing
+	 * path to the input xml file.
+	 */
+	public FunctionTypingAPI() {
+		try {
+			URL fileURL = new URL(
+					"platform:/plugin/org.eclipse.osbp.utils.functionnormalizer/org/eclipse/osbp/utils/functionnormalizer/FunctionTypes.xml");
+//			File xmlFile = new File(FileLocator.resolve(fileURL).toURI());
+//			blobTyping = readBlob(xmlFile);
+			InputStream inputStream = fileURL.openConnection().getInputStream();
+			functionTyping = readFunction(inputStream);
+		} catch (JAXBException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (MalformedURLException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+//		} catch (URISyntaxException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * Constructor in case of a different path to the input xml file.
+	 * 
+	 * !!! This is also the only usable constructor for JUnit test because the
+	 * above OSGI-path to the input xml file is not working for simple JUnit
+	 * tests!!!
+	 * 
+	 * @param xmlFile
+	 */
+	public FunctionTypingAPI(File xmlFile) {
+		try {
+			functionTyping = readFunction(xmlFile);
+		} catch (JAXBException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * Method that reads the blob typing xml file and fill the 'BlobTyping'
+	 * object via JAXB with all the receiving data from the xml input file.
+	 * 
+	 * @param xmlFile
+	 * @return the {@link BlobTyping} object filled with all the defined data
+	 *         from the blob typing xml file.
+	 * @throws JAXBException
+	 */
+	private FunctionTyping readFunction(File xmlFile) throws JAXBException {
+		JAXBContext jaxbContext = JAXBContext.newInstance(FunctionTyping.class);
+		Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
+		return (FunctionTyping) jaxbUnmarshaller.unmarshal(xmlFile);
+	}
+
+	/**
+	 * Method that reads the blob typing xml file and fill the 'BlobTyping'
+	 * object via JAXB with all the receiving data from the xml input file.
+	 * 
+	 * @param xmlFile
+	 * @return the {@link BlobTyping} object filled with all the defined data
+	 *         from the blob typing xml file.
+	 * @throws JAXBException
+	 */
+	private FunctionTyping readFunction(InputStream xmlFile) throws JAXBException {
+		JAXBContext jaxbContext = JAXBContext.newInstance(FunctionTyping.class);
+		Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
+		return (FunctionTyping) jaxbUnmarshaller.unmarshal(xmlFile);
+	}
+	
+	/**
+	 * Provides the defined list of function normalizer objects.
+	 * 
+	 * @return list of {@link FunctionNormalizer}
+	 */
+	public List<FunctionNormalizer> getNormalizer() {
+		return functionTyping.getNormalizer();
+	}
+
+	/**
+	 * Provides the defined list of function type objects.
+	 * 
+	 * @return list of {@link FunctionNormalizer}
+	 */
+	public List<FunctionType> getTypes() {
+		return functionTyping.getTypes();
+	}
+
+	/**
+	 * Provides the name of the function type object 'functionCss'.
+	 * 
+	 * @return Name of {@link FunctionType}
+	 */
+	public String getFunctionCssTypeName() {
+		return functionTyping.getTypes().get(FUNCTION_CSS).getName();
+	}
+	
+	/**
+	 * Provides the name of the function type object 'functionConverter'.
+	 * 
+	 * @return Name of {@link FunctionType}
+	 */
+	public String getFunctionConverterTypeName() {
+		return functionTyping.getTypes().get(FUNCTION_CONVERTER).getName();
+	}
+	
+	/**
+	 * Provides the name of the function type object 'functionImagePicker'.
+	 * 
+	 * @return Name of {@link FunctionType}
+	 */
+	public String getFunctionImagePickerTypeName() {
+		return functionTyping.getTypes().get(FUNCTION_IMAGE_PICKER).getName();
+	}
+	
+	/**
+	 * Provides the function normalizer name for an individual position within
+	 * the list of all the defined function objects of the normalizer object.
+	 * 
+	 * @param index
+	 * @return the function normalizer name as {@link String} or ""(blank) if
+	 *         not found
+	 */
+	public String getFunctionNormalizerNameByListIndex(int index) {
+		int length = functionTyping.getNormalizer().size();
+		if (index < length) {
+			return functionTyping.getNormalizer().get(index).getName();
+		} else {
+			return "";
+		}
+	}
+
+	/**
+	 * Provides the function normalizer return type for an individual position within the
+	 * list of all the defined function objects of the normalizer object.
+	 * 
+	 * @param index
+	 * @return the normalizer resolution as {@link String} or ""(blank) if not
+	 *         found
+	 */
+	public String getFunctionNormalizerReturnTypeByListIndex(int index) {
+		int length = functionTyping.getNormalizer().size();
+		if (index < length) {
+			return functionTyping.getNormalizer().get(index).getReturnType();
+		} else {
+			return "";
+		}
+	}
+
+	/**
+	 * Provides the function normalizer return type for a specific function name.
+	 * 
+	 * @param resolutionStr
+	 * @return the normalizer return type as {@link String} or ""(blank) if not found
+	 */
+	public String getFunctionNormalizerReturnTypeByName(String functionName) {
+		for (FunctionNormalizer functionNormalizer : functionTyping
+				.getNormalizer()) {
+			if (functionNormalizer.getName().equals(functionName)) {
+				return functionNormalizer.getReturnType();
+			}
+		}
+		return "";
+	}
+	
+	/**
+	 * Provides the function type name for an individual position within the
+	 * list of all the defined function objects of the functionType object.
+	 * 
+	 * @param index
+	 * @return the function type name as {@link String} or ""(blank) if not
+	 *         found
+	 */
+	public String getFunctionTypeNameByListIndex(int index) {
+		int length = functionTyping.getTypes().size();
+		if (index < length) {
+			return functionTyping.getTypes().get(index).getName();
+		} else {
+			return "";
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/functionNormalizer.datatype b/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/functionNormalizer.datatype
new file mode 100644
index 0000000..a456d6c
--- /dev/null
+++ b/org.eclipse.osbp.utils.functionnormalizer/src/org/eclipse/osbp/utils/functionnormalizer/functionNormalizer.datatype
@@ -0,0 +1,40 @@
+/*
+ *                                                                            
+ *  Copyright (c) 2015 - 2016 - Loetz GmbH&Co.KG, 69115 Heidelberg, Germany 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the terms of the Eclipse Public License v1.0       
+ *  which accompanies this distribution, and is available at                  
+ *  http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ *  Contributors:                                                      
+ * 	   Loetz GmbH&Co.KG - Initial implementation
+ * 
+ */
+ package org.eclipse.osbp.utils.blob.datatypes {
+	
+	datatype boolean jvmType java.lang.Boolean as primitive;
+	datatype short jvmType java.lang.Short as primitive;
+	datatype int jvmType java.lang.Integer as primitive;
+	datatype long jvmType java.lang.Long as primitive;
+	datatype double jvmType java.lang.Double as primitive;
+	datatype float jvmType java.lang.Float as primitive;
+	datatype character jvmType java.lang.Character as primitive;
+	datatype byte jvmType java.lang.Byte as primitive;
+  
+	datatype Boolean jvmType java.lang.Boolean;
+	datatype Short jvmType java.lang.Short;
+	datatype Int jvmType java.lang.Integer;
+	datatype Long jvmType java.lang.Long;
+	datatype Double jvmType java.lang.Double;
+	datatype Float jvmType java.lang.Float;
+	datatype Character jvmType java.lang.Character;
+	datatype Byte jvmType java.lang.Byte;
+	datatype BigDecimal jvmType java.math.BigDecimal;
+
+	datatype String jvmType java.lang.String;
+	datatype Date dateType date;
+	datatype datetype dateType date;
+	datatype timetype dateType time;
+	datatype blobtype as blob;	
+}
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..afd75ac
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# All rights reserved. This program and the accompanying materials -->
+<!--# are made available under the terms of the Eclipse Public License v1.0 -->
+<!--# which accompanies this distribution, and is available at -->
+<!--# http://www.eclipse.org/legal/epl-v10.html -->
+<!--# -->
+<!--# Contributors: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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>
+	<parent>
+		<groupId>org.eclipse.osbp.releng.maven</groupId>
+		<artifactId>org.eclipse.osbp.releng.maven.parent.tycho</artifactId>
+		<version>0.9.0-SNAPSHOT</version>
+	</parent>
+
+	<groupId>org.eclipse.osbp.utils.functionnormalizer</groupId>
+	<artifactId>org.eclipse.osbp.utils.functionnormalizer.aggregator</artifactId>
+	<version>0.9.0-SNAPSHOT</version>
+	<packaging>pom</packaging>
+
+	<properties>
+		<osbp.gitrepo.name>${project.groupId}</osbp.gitrepo.name>
+	</properties>
+
+	<modules>
+		<module>org.eclipse.osbp.utils.functionnormalizer</module>
+		<module>org.eclipse.osbp.utils.functionnormalizer.tests</module>
+		<module>org.eclipse.osbp.utils.functionnormalizer.feature</module>
+	</modules>
+
+	<url>${osbp.site.repository.url}</url>
+	<scm>
+		<url>${osbp.scm.url}</url>
+		<connection>${osbp.scm.connection}</connection>
+		<developerConnection>${osbp.scm.connection.dev}</developerConnection>
+		<tag>HEAD</tag>
+	</scm>
+
+	<build>
+		<pluginManagement>
+			<plugins>
+				<plugin>
+					<groupId>org.eclipse.xtend</groupId>
+					<artifactId>xtend-maven-plugin</artifactId>
+				</plugin>
+				<plugin>
+					<groupId>org.codehaus.mojo</groupId>
+					<artifactId>build-helper-maven-plugin</artifactId>
+					<executions>
+						<execution>
+							<id>add-source</id>
+							<phase>initialize</phase>
+							<goals>
+								<goal>add-source</goal>
+							</goals>
+							<configuration>
+								<sources>
+									<source>src-gen</source>
+									<source>xtend-gen</source>
+								</sources>
+							</configuration>
+						</execution>
+					</executions>
+				</plugin>
+				<plugin>
+					<groupId>org.eclipse.tycho</groupId>
+					<artifactId>tycho-source-plugin</artifactId>
+					<version>${tycho-version}</version>
+					<executions>
+						<execution>
+							<id>plugin-source</id>
+							<goals>
+								<goal>plugin-source</goal>
+							</goals>
+						</execution>
+					</executions>
+				</plugin>
+				<plugin>
+					<groupId>org.eclipse.osbp.tools.maven</groupId>
+					<artifactId>org.eclipse.osbp.tools.maven.entity</artifactId>
+					<version>0.9.0-SNAPSHOT</version>
+					<executions>
+						<execution>
+							<goals>
+								<goal>compile</goal>
+								<goal>testCompile</goal>
+							</goals>
+						</execution>
+					</executions>
+					<configuration>
+						<outputDirectory>src-gen</outputDirectory>
+					</configuration>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+		<plugins>
+			<plugin>
+				<artifactId>maven-clean-plugin</artifactId>
+				<configuration>
+					<filesets>
+						<fileset>
+							<directory>xtend-gen</directory>
+							<includes>
+								<include>**</include>
+							</includes>
+						</fileset>
+					</filesets>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.eclipse.xtend</groupId>
+				<artifactId>xtend-maven-plugin</artifactId>
+				<executions>
+					<execution>
+						<goals>
+							<goal>compile</goal>
+							<goal>testCompile</goal>
+						</goals>
+						<configuration>
+							<outputDirectory>xtend-gen</outputDirectory>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+</project>