adjusted legal info, cleanup, new features
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..fc5938d
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,140 @@
+Eclipse Foundation Software User Agreement
+
+November 22, 2017
+
+Usage Of Content
+
+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.
+
+Applicable Licenses
+
+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 2.0 ("EPL"). A copy of the EPL is provided with this Content and is also
+available at http://www.eclipse.org/legal/epl-2.0. For purposes of the EPL,
+"Program" will mean the Content.
+
+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").
+
+-   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").
+-   Each Plug-in or Fragment may be packaged as a sub-directory or JAR
+    (Java™ ARchive) in a directory named "plugins".
+-   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.
+-   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.
+
+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:
+
+-   The top-level (root) directory
+-   Plug-in and Fragment directories
+-   Inside Plug-ins and Fragments packaged as JARs
+-   Sub-directories of the directory named "src" of certain Plug-ins
+-   Feature directories
+
+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.
+
+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):
+
+-   Eclipse Public License Version 1.0 (available at
+    http://www.eclipse.org/legal/epl-v10.html)
+-   Eclipse Distribution License Version 1.0 (available at
+    http://www.eclipse.org/licenses/edl-v1.0.html)
+-   Common Public License Version 1.0 (available at
+    http://www.eclipse.org/legal/cpl-v10.html)
+-   Apache Software License 1.1 (available at
+    http://www.apache.org/licenses/LICENSE)
+-   Apache Software License 2.0 (available at
+    http://www.apache.org/licenses/LICENSE-2.0)
+-   Mozilla Public License Version 1.1 (available at
+    http://www.mozilla.org/MPL/MPL-1.1.html)
+
+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.
+
+Use of Provisioning Technology
+
+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
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").
+
+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:
+
+1.  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.
+2.  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.
+3.  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.
+
+Cryptography
+
+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.
+
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the
+United States, other countries, or both.
diff --git a/about.ini b/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/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/about.mappings b/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/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/epl-2.0.html b/epl-2.0.html
new file mode 100644
index 0000000..637a181
--- /dev/null
+++ b/epl-2.0.html
@@ -0,0 +1,300 @@
+<!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" xml:lang="en" lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>Eclipse Public License - Version 2.0</title>
+    <style type="text/css">
+      body {
+        margin: 1.5em 3em;
+      }
+      h1{
+        font-size:1.5em;
+      }
+      h2{
+        font-size:1em;
+        margin-bottom:0.5em;
+        margin-top:1em;
+      }
+      p {
+        margin-top:  0.5em;
+        margin-bottom: 0.5em;
+      }
+      ul, ol{
+        list-style-type:none;
+      }
+    </style>
+  </head>
+  <body>
+    <h1>Eclipse Public License - v 2.0</h1>
+    <p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+      PUBLIC LICENSE (&ldquo;AGREEMENT&rdquo;). ANY USE, REPRODUCTION OR DISTRIBUTION
+      OF THE PROGRAM CONSTITUTES RECIPIENT&#039;S ACCEPTANCE OF THIS AGREEMENT.
+    </p>
+    <h2 id="definitions">1. DEFINITIONS</h2>
+    <p>&ldquo;Contribution&rdquo; means:</p>
+    <ul>
+      <li>a) in the case of the initial Contributor, the initial content
+        Distributed under this Agreement, and
+      </li>
+      <li>
+        b) in the case of each subsequent Contributor:
+        <ul>
+          <li>i) changes to the Program, and</li>
+          <li>ii) additions to the Program;</li>
+        </ul>
+        where such changes and/or additions to the Program originate from
+        and are Distributed by that particular Contributor. A Contribution
+        &ldquo;originates&rdquo; from a Contributor if it was added to the Program by such
+        Contributor itself or anyone acting on such Contributor&#039;s behalf.
+        Contributions do not include changes or additions to the Program that
+        are not Modified Works.
+      </li>
+    </ul>
+    <p>&ldquo;Contributor&rdquo; means any person or entity that Distributes the Program.</p>
+    <p>&ldquo;Licensed Patents&rdquo; 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>&ldquo;Program&rdquo; means the Contributions Distributed in accordance with this
+      Agreement.
+    </p>
+    <p>&ldquo;Recipient&rdquo; means anyone who receives the Program under this Agreement
+      or any Secondary License (as applicable), including Contributors.
+    </p>
+    <p>&ldquo;Derivative Works&rdquo; shall mean any work, whether in Source Code or other
+      form, that is based on (or derived from) the Program and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship.
+    </p>
+    <p>&ldquo;Modified Works&rdquo; shall mean any work in Source Code or other form that
+      results from an addition to, deletion from, or modification of the
+      contents of the Program, including, for purposes of clarity any new file
+      in Source Code form that contains any contents of the Program. Modified
+      Works shall not include works that contain only declarations, interfaces,
+      types, classes, structures, or files of the Program solely in each case
+      in order to link to, bind by name, or subclass the Program or Modified
+      Works thereof.
+    </p>
+    <p>&ldquo;Distribute&rdquo; means the acts of a) distributing or b) making available
+      in any manner that enables the transfer of a copy.
+    </p>
+    <p>&ldquo;Source Code&rdquo; means the form of a Program preferred for making
+      modifications, including but not limited to software source code,
+      documentation source, and configuration files.
+    </p>
+    <p>&ldquo;Secondary License&rdquo; means either the GNU General Public License,
+      Version 2.0, or any later versions of that license, including any
+      exceptions or additional permissions as identified by the initial
+      Contributor.
+    </p>
+    <h2 id="grant-of-rights">2. GRANT OF RIGHTS</h2>
+    <ul>
+      <li>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.
+      </li>
+      <li>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 or other 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.
+      </li>
+      <li>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&#039;s
+        responsibility to acquire that license before distributing the Program.
+      </li>
+      <li>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.
+      </li>
+      <li>e) Notwithstanding the terms of any Secondary License, no Contributor
+        makes additional grants to any Recipient (other than those set forth
+        in this Agreement) as a result of such Recipient&#039;s receipt of the
+        Program under the terms of a Secondary License (if permitted under
+        the terms of Section 3).
+      </li>
+    </ul>
+    <h2 id="requirements">3. REQUIREMENTS</h2>
+    <p>3.1 If a Contributor Distributes the Program in any form, then:</p>
+    <ul>
+      <li>a) the Program must also be made available as Source Code, in
+        accordance with section 3.2, and the Contributor must accompany
+        the Program with a statement that the Source Code for the Program
+        is available under this Agreement, and informs Recipients how to
+        obtain it in a reasonable manner on or through a medium customarily
+        used for software exchange; and
+      </li>
+      <li>
+        b) the Contributor may Distribute the Program under a license
+        different than this Agreement, provided that such license:
+        <ul>
+          <li>i) effectively disclaims on behalf of all other 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;
+          </li>
+          <li>ii) effectively excludes on behalf of all other Contributors all
+            liability for damages, including direct, indirect, special, incidental
+            and consequential damages, such as lost profits;
+          </li>
+          <li>iii) does not attempt to limit or alter the recipients&#039; rights in the
+            Source Code under section 3.2; and
+          </li>
+          <li>iv) requires any subsequent distribution of the Program by any party
+            to be under a license that satisfies the requirements of this section 3.
+          </li>
+        </ul>
+      </li>
+    </ul>
+    <p>3.2 When the Program is Distributed as Source Code:</p>
+    <ul>
+      <li>a) it must be made available under this Agreement, or if the Program (i)
+        is combined with other material in a separate file or files made available
+        under a Secondary License, and (ii) the initial Contributor attached to
+        the Source Code the notice described in Exhibit A of this Agreement,
+        then the Program may be made available under the terms of such
+        Secondary Licenses, and
+      </li>
+      <li>b) a copy of this Agreement must be included with each copy of the Program.</li>
+    </ul>
+    <p>3.3 Contributors may not remove or alter any copyright, patent, trademark,
+      attribution notices, disclaimers of warranty, or limitations of liability
+      (&lsquo;notices&rsquo;) contained within the Program from any copy of the Program which
+      they Distribute, provided that Contributors may add their own appropriate
+      notices.
+    </p>
+    <h2 id="commercial-distribution">4. COMMERCIAL DISTRIBUTION</h2>
+    <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 (&ldquo;Commercial Contributor&rdquo;)
+      hereby agrees to defend and indemnify every other Contributor
+      (&ldquo;Indemnified Contributor&rdquo;) against any losses, damages and costs
+      (collectively &ldquo;Losses&rdquo;) 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&#039;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>
+    <h2 id="warranty">5. NO WARRANTY</h2>
+    <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
+      BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN &ldquo;AS IS&rdquo; 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>
+    <h2 id="disclaimer">6. DISCLAIMER OF LIABILITY</h2>
+    <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
+      BY APPLICABLE LAW, 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>
+    <h2 id="general">7. GENERAL</h2>
+    <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&#039;s patent(s), then such Recipient&#039;s rights granted
+      under Section 2(b) shall terminate as of the date such litigation is filed.
+    </p>
+    <p>All Recipient&#039;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&#039;s rights under this Agreement
+      terminate, Recipient agrees to cease use and distribution of the Program
+      as soon as reasonably practicable. However, Recipient&#039;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.
+    </p>
+    <p>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. Nothing in this Agreement is intended
+      to be enforceable by any entity that is not a Contributor or Recipient.
+      No third-party beneficiary rights are created under this Agreement.
+    </p>
+    <h2 id="exhibit-a">Exhibit A &ndash; Form of Secondary Licenses Notice</h2>
+    <p>&ldquo;This Source Code may also be made available under the following 
+    	Secondary Licenses when the conditions for such availability set forth 
+    	in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
+    	version(s), and exceptions or additional permissions here}.&rdquo;
+    </p>
+    <blockquote>
+      <p>Simply including a copy of this Agreement, including this Exhibit A
+        is not sufficient to license the Source Code under Secondary Licenses.
+      </p>
+      <p>If it is not possible or desirable to put the notice in a particular file,
+        then You may include the notice in a location (such as a LICENSE file in a
+        relevant directory) where a recipient would be likely to look for
+        such a notice.
+      </p>
+      <p>You may add additional accurate notices of copyright ownership.</p>
+    </blockquote>
+  </body>
+</html>
\ No newline at end of file
diff --git a/license.html b/license.html
new file mode 100644
index 0000000..008b801
--- /dev/null
+++ b/license.html
@@ -0,0 +1,189 @@
+<?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>November 22, 2017</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 2.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-2.0">http://www.eclipse.org/legal/epl-2.0</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 Public License Version 1.0 (available at <a
+			href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>)
+		</li>
+		<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.xtext.menu.feature/feature.properties b/org.eclipse.osbp.xtext.menu.feature/feature.properties
index d6c708e..f786d61 100644
--- a/org.eclipse.osbp.xtext.menu.feature/feature.properties
+++ b/org.eclipse.osbp.xtext.menu.feature/feature.properties
@@ -37,7 +37,7 @@
 https://www.eclipse.org/legal/epl-2.0/\n\
 \n\
 SPDX-License-Identifier: EPL-2.0\n\
-\n\
+\n
 ################ end of copyright property ####################################
 
 # "licenseURL" property - URL of the "Feature License"
diff --git a/org.eclipse.osbp.xtext.menu.feature/feature.xml b/org.eclipse.osbp.xtext.menu.feature/feature.xml
index 3b97b43..4ae56c1 100644
--- a/org.eclipse.osbp.xtext.menu.feature/feature.xml
+++ b/org.eclipse.osbp.xtext.menu.feature/feature.xml
@@ -15,7 +15,7 @@
         label="%featureName"
         version="0.9.0.qualifier"
         provider-name="%providerName"
-		plugin="org.eclipse.osbp.xtext.menu">
+		plugin="org.eclipse.osbp.license">
         
     <description>
         %description
diff --git a/org.eclipse.osbp.xtext.menu.ide/LICENSE.txt b/org.eclipse.osbp.xtext.menu.ide/LICENSE.txt
new file mode 100644
index 0000000..fc5938d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.menu.ide/LICENSE.txt
@@ -0,0 +1,140 @@
+Eclipse Foundation Software User Agreement
+
+November 22, 2017
+
+Usage Of Content
+
+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.
+
+Applicable Licenses
+
+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 2.0 ("EPL"). A copy of the EPL is provided with this Content and is also
+available at http://www.eclipse.org/legal/epl-2.0. For purposes of the EPL,
+"Program" will mean the Content.
+
+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").
+
+-   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").
+-   Each Plug-in or Fragment may be packaged as a sub-directory or JAR
+    (Java™ ARchive) in a directory named "plugins".
+-   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.
+-   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.
+
+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:
+
+-   The top-level (root) directory
+-   Plug-in and Fragment directories
+-   Inside Plug-ins and Fragments packaged as JARs
+-   Sub-directories of the directory named "src" of certain Plug-ins
+-   Feature directories
+
+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.
+
+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):
+
+-   Eclipse Public License Version 1.0 (available at
+    http://www.eclipse.org/legal/epl-v10.html)
+-   Eclipse Distribution License Version 1.0 (available at
+    http://www.eclipse.org/licenses/edl-v1.0.html)
+-   Common Public License Version 1.0 (available at
+    http://www.eclipse.org/legal/cpl-v10.html)
+-   Apache Software License 1.1 (available at
+    http://www.apache.org/licenses/LICENSE)
+-   Apache Software License 2.0 (available at
+    http://www.apache.org/licenses/LICENSE-2.0)
+-   Mozilla Public License Version 1.1 (available at
+    http://www.mozilla.org/MPL/MPL-1.1.html)
+
+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.
+
+Use of Provisioning Technology
+
+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
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").
+
+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:
+
+1.  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.
+2.  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.
+3.  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.
+
+Cryptography
+
+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.
+
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the
+United States, other countries, or both.
diff --git a/org.eclipse.osbp.xtext.menu.ide/about.html b/org.eclipse.osbp.xtext.menu.ide/about.html
new file mode 100644
index 0000000..e8b834d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.menu.ide/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>November 30, 2017</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 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</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.xtext.menu.ide/about.ini b/org.eclipse.osbp.xtext.menu.ide/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.menu.ide/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.xtext.menu.ide/about.mappings b/org.eclipse.osbp.xtext.menu.ide/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.menu.ide/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.xtext.menu.ide/about.properties b/org.eclipse.osbp.xtext.menu.ide/about.properties
new file mode 100644
index 0000000..79b2157
--- /dev/null
+++ b/org.eclipse.osbp.xtext.menu.ide/about.properties
@@ -0,0 +1,57 @@
+#
+# 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 2.0 
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#    Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.xtext.menu
+
+################ blurb property ####################################
+aboutText=\
+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 2.0 \n\
+which accompanies this distribution, and is available at\n\
+https://www.eclipse.org/legal/epl-2.0/\n\
+\n\
+SPDX-License-Identifier: EPL-2.0\n\
+\n\
+Contributors:\n\
+    Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+	
+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 2.0 \n\
+which accompanies this distribution, and is available at\n\
+https://www.eclipse.org/legal/epl-2.0/\n\
+\n\
+SPDX-License-Identifier: EPL-2.0\n\
+\n\
+Contributors:\n\
+    Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+	
+blurb=\
+Eclipse OSBP Software Factory\n\
+org.eclipse.osbp.xtext.menu - Version ${featureVersion}\n\
+\n\
+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 2.0 \n\
+which accompanies this distribution, and is available at\n\
+https://www.eclipse.org/legal/epl-2.0/\n\
+\n\
+SPDX-License-Identifier: EPL-2.0\n\
+\n\
+Contributors:\n\
+    Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.xtext.menu.ide/build.properties b/org.eclipse.osbp.xtext.menu.ide/build.properties
index 6ef1a59..82d3329 100644
--- a/org.eclipse.osbp.xtext.menu.ide/build.properties
+++ b/org.eclipse.osbp.xtext.menu.ide/build.properties
@@ -1,5 +1,12 @@
-bin.includes = META-INF/,\
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  .,\
+			   META-INF/,\
 				.,\
                src/,\
-               src-gen/
-source.. = src/,src-gen/
+               src-gen/,\
+			   epl-2.0.html,\
+               LICENSE.txt,\
+               license.html
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  LICENSE.txt,\
+			   epl-2.0.html,\
+               license.html
+
diff --git a/org.eclipse.osbp.xtext.menu.ide/epl-2.0.html b/org.eclipse.osbp.xtext.menu.ide/epl-2.0.html
new file mode 100644
index 0000000..637a181
--- /dev/null
+++ b/org.eclipse.osbp.xtext.menu.ide/epl-2.0.html
@@ -0,0 +1,300 @@
+<!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" xml:lang="en" lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>Eclipse Public License - Version 2.0</title>
+    <style type="text/css">
+      body {
+        margin: 1.5em 3em;
+      }
+      h1{
+        font-size:1.5em;
+      }
+      h2{
+        font-size:1em;
+        margin-bottom:0.5em;
+        margin-top:1em;
+      }
+      p {
+        margin-top:  0.5em;
+        margin-bottom: 0.5em;
+      }
+      ul, ol{
+        list-style-type:none;
+      }
+    </style>
+  </head>
+  <body>
+    <h1>Eclipse Public License - v 2.0</h1>
+    <p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+      PUBLIC LICENSE (&ldquo;AGREEMENT&rdquo;). ANY USE, REPRODUCTION OR DISTRIBUTION
+      OF THE PROGRAM CONSTITUTES RECIPIENT&#039;S ACCEPTANCE OF THIS AGREEMENT.
+    </p>
+    <h2 id="definitions">1. DEFINITIONS</h2>
+    <p>&ldquo;Contribution&rdquo; means:</p>
+    <ul>
+      <li>a) in the case of the initial Contributor, the initial content
+        Distributed under this Agreement, and
+      </li>
+      <li>
+        b) in the case of each subsequent Contributor:
+        <ul>
+          <li>i) changes to the Program, and</li>
+          <li>ii) additions to the Program;</li>
+        </ul>
+        where such changes and/or additions to the Program originate from
+        and are Distributed by that particular Contributor. A Contribution
+        &ldquo;originates&rdquo; from a Contributor if it was added to the Program by such
+        Contributor itself or anyone acting on such Contributor&#039;s behalf.
+        Contributions do not include changes or additions to the Program that
+        are not Modified Works.
+      </li>
+    </ul>
+    <p>&ldquo;Contributor&rdquo; means any person or entity that Distributes the Program.</p>
+    <p>&ldquo;Licensed Patents&rdquo; 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>&ldquo;Program&rdquo; means the Contributions Distributed in accordance with this
+      Agreement.
+    </p>
+    <p>&ldquo;Recipient&rdquo; means anyone who receives the Program under this Agreement
+      or any Secondary License (as applicable), including Contributors.
+    </p>
+    <p>&ldquo;Derivative Works&rdquo; shall mean any work, whether in Source Code or other
+      form, that is based on (or derived from) the Program and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship.
+    </p>
+    <p>&ldquo;Modified Works&rdquo; shall mean any work in Source Code or other form that
+      results from an addition to, deletion from, or modification of the
+      contents of the Program, including, for purposes of clarity any new file
+      in Source Code form that contains any contents of the Program. Modified
+      Works shall not include works that contain only declarations, interfaces,
+      types, classes, structures, or files of the Program solely in each case
+      in order to link to, bind by name, or subclass the Program or Modified
+      Works thereof.
+    </p>
+    <p>&ldquo;Distribute&rdquo; means the acts of a) distributing or b) making available
+      in any manner that enables the transfer of a copy.
+    </p>
+    <p>&ldquo;Source Code&rdquo; means the form of a Program preferred for making
+      modifications, including but not limited to software source code,
+      documentation source, and configuration files.
+    </p>
+    <p>&ldquo;Secondary License&rdquo; means either the GNU General Public License,
+      Version 2.0, or any later versions of that license, including any
+      exceptions or additional permissions as identified by the initial
+      Contributor.
+    </p>
+    <h2 id="grant-of-rights">2. GRANT OF RIGHTS</h2>
+    <ul>
+      <li>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.
+      </li>
+      <li>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 or other 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.
+      </li>
+      <li>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&#039;s
+        responsibility to acquire that license before distributing the Program.
+      </li>
+      <li>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.
+      </li>
+      <li>e) Notwithstanding the terms of any Secondary License, no Contributor
+        makes additional grants to any Recipient (other than those set forth
+        in this Agreement) as a result of such Recipient&#039;s receipt of the
+        Program under the terms of a Secondary License (if permitted under
+        the terms of Section 3).
+      </li>
+    </ul>
+    <h2 id="requirements">3. REQUIREMENTS</h2>
+    <p>3.1 If a Contributor Distributes the Program in any form, then:</p>
+    <ul>
+      <li>a) the Program must also be made available as Source Code, in
+        accordance with section 3.2, and the Contributor must accompany
+        the Program with a statement that the Source Code for the Program
+        is available under this Agreement, and informs Recipients how to
+        obtain it in a reasonable manner on or through a medium customarily
+        used for software exchange; and
+      </li>
+      <li>
+        b) the Contributor may Distribute the Program under a license
+        different than this Agreement, provided that such license:
+        <ul>
+          <li>i) effectively disclaims on behalf of all other 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;
+          </li>
+          <li>ii) effectively excludes on behalf of all other Contributors all
+            liability for damages, including direct, indirect, special, incidental
+            and consequential damages, such as lost profits;
+          </li>
+          <li>iii) does not attempt to limit or alter the recipients&#039; rights in the
+            Source Code under section 3.2; and
+          </li>
+          <li>iv) requires any subsequent distribution of the Program by any party
+            to be under a license that satisfies the requirements of this section 3.
+          </li>
+        </ul>
+      </li>
+    </ul>
+    <p>3.2 When the Program is Distributed as Source Code:</p>
+    <ul>
+      <li>a) it must be made available under this Agreement, or if the Program (i)
+        is combined with other material in a separate file or files made available
+        under a Secondary License, and (ii) the initial Contributor attached to
+        the Source Code the notice described in Exhibit A of this Agreement,
+        then the Program may be made available under the terms of such
+        Secondary Licenses, and
+      </li>
+      <li>b) a copy of this Agreement must be included with each copy of the Program.</li>
+    </ul>
+    <p>3.3 Contributors may not remove or alter any copyright, patent, trademark,
+      attribution notices, disclaimers of warranty, or limitations of liability
+      (&lsquo;notices&rsquo;) contained within the Program from any copy of the Program which
+      they Distribute, provided that Contributors may add their own appropriate
+      notices.
+    </p>
+    <h2 id="commercial-distribution">4. COMMERCIAL DISTRIBUTION</h2>
+    <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 (&ldquo;Commercial Contributor&rdquo;)
+      hereby agrees to defend and indemnify every other Contributor
+      (&ldquo;Indemnified Contributor&rdquo;) against any losses, damages and costs
+      (collectively &ldquo;Losses&rdquo;) 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&#039;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>
+    <h2 id="warranty">5. NO WARRANTY</h2>
+    <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
+      BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN &ldquo;AS IS&rdquo; 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>
+    <h2 id="disclaimer">6. DISCLAIMER OF LIABILITY</h2>
+    <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
+      BY APPLICABLE LAW, 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>
+    <h2 id="general">7. GENERAL</h2>
+    <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&#039;s patent(s), then such Recipient&#039;s rights granted
+      under Section 2(b) shall terminate as of the date such litigation is filed.
+    </p>
+    <p>All Recipient&#039;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&#039;s rights under this Agreement
+      terminate, Recipient agrees to cease use and distribution of the Program
+      as soon as reasonably practicable. However, Recipient&#039;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.
+    </p>
+    <p>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. Nothing in this Agreement is intended
+      to be enforceable by any entity that is not a Contributor or Recipient.
+      No third-party beneficiary rights are created under this Agreement.
+    </p>
+    <h2 id="exhibit-a">Exhibit A &ndash; Form of Secondary Licenses Notice</h2>
+    <p>&ldquo;This Source Code may also be made available under the following 
+    	Secondary Licenses when the conditions for such availability set forth 
+    	in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
+    	version(s), and exceptions or additional permissions here}.&rdquo;
+    </p>
+    <blockquote>
+      <p>Simply including a copy of this Agreement, including this Exhibit A
+        is not sufficient to license the Source Code under Secondary Licenses.
+      </p>
+      <p>If it is not possible or desirable to put the notice in a particular file,
+        then You may include the notice in a location (such as a LICENSE file in a
+        relevant directory) where a recipient would be likely to look for
+        such a notice.
+      </p>
+      <p>You may add additional accurate notices of copyright ownership.</p>
+    </blockquote>
+  </body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.menu.ide/license.html b/org.eclipse.osbp.xtext.menu.ide/license.html
new file mode 100644
index 0000000..008b801
--- /dev/null
+++ b/org.eclipse.osbp.xtext.menu.ide/license.html
@@ -0,0 +1,189 @@
+<?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>November 22, 2017</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 2.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-2.0">http://www.eclipse.org/legal/epl-2.0</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 Public License Version 1.0 (available at <a
+			href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>)
+		</li>
+		<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.xtext.menu.tests/about.properties b/org.eclipse.osbp.xtext.menu.tests/about.properties
index 9bd6fd3..79b2157 100644
--- a/org.eclipse.osbp.xtext.menu.tests/about.properties
+++ b/org.eclipse.osbp.xtext.menu.tests/about.properties
@@ -13,9 +13,21 @@
 
 # NLS_MESSAGEFORMAT_VAR
 
-featureName=org.eclipse.osbp.xtext.menu.tests
+featureName=org.eclipse.osbp.xtext.menu
 
 ################ blurb property ####################################
+aboutText=\
+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 2.0 \n\
+which accompanies this distribution, and is available at\n\
+https://www.eclipse.org/legal/epl-2.0/\n\
+\n\
+SPDX-License-Identifier: EPL-2.0\n\
+\n\
+Contributors:\n\
+    Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+	
 featureText=\
 Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
 All rights reserved. This program and the accompanying materials\n\
@@ -27,4 +39,19 @@
 \n\
 Contributors:\n\
     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+	
+blurb=\
+Eclipse OSBP Software Factory\n\
+org.eclipse.osbp.xtext.menu - Version ${featureVersion}\n\
+\n\
+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 2.0 \n\
+which accompanies this distribution, and is available at\n\
+https://www.eclipse.org/legal/epl-2.0/\n\
+\n\
+SPDX-License-Identifier: EPL-2.0\n\
+\n\
+Contributors:\n\
+    Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
 ################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.xtext.menu.ui/about.properties b/org.eclipse.osbp.xtext.menu.ui/about.properties
index 16c18b5..79b2157 100644
--- a/org.eclipse.osbp.xtext.menu.ui/about.properties
+++ b/org.eclipse.osbp.xtext.menu.ui/about.properties
@@ -13,9 +13,21 @@
 
 # NLS_MESSAGEFORMAT_VAR
 
-featureName=org.eclipse.osbp.xtext.menu.ui
+featureName=org.eclipse.osbp.xtext.menu
 
 ################ blurb property ####################################
+aboutText=\
+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 2.0 \n\
+which accompanies this distribution, and is available at\n\
+https://www.eclipse.org/legal/epl-2.0/\n\
+\n\
+SPDX-License-Identifier: EPL-2.0\n\
+\n\
+Contributors:\n\
+    Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+	
 featureText=\
 Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
 All rights reserved. This program and the accompanying materials\n\
@@ -27,4 +39,19 @@
 \n\
 Contributors:\n\
     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+	
+blurb=\
+Eclipse OSBP Software Factory\n\
+org.eclipse.osbp.xtext.menu - Version ${featureVersion}\n\
+\n\
+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 2.0 \n\
+which accompanies this distribution, and is available at\n\
+https://www.eclipse.org/legal/epl-2.0/\n\
+\n\
+SPDX-License-Identifier: EPL-2.0\n\
+\n\
+Contributors:\n\
+    Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
 ################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.xtext.menu.ui/src/org/eclipse/osbp/xtext/menu/ui/contentassist/MenuDslProposalProvider.xtend b/org.eclipse.osbp.xtext.menu.ui/src/org/eclipse/osbp/xtext/menu/ui/contentassist/MenuDslProposalProvider.xtend
index e8a652f..874e1dd 100644
--- a/org.eclipse.osbp.xtext.menu.ui/src/org/eclipse/osbp/xtext/menu/ui/contentassist/MenuDslProposalProvider.xtend
+++ b/org.eclipse.osbp.xtext.menu.ui/src/org/eclipse/osbp/xtext/menu/ui/contentassist/MenuDslProposalProvider.xtend
@@ -57,7 +57,7 @@
 		var imageSelectorDialog = new ImageSelectorDialog(shell, 16);
 		imageSelectorDialog.setFilterExtensions(extensions)
 		var imageFileName = imageSelectorDialog.open(true);
-		return "\"".concat(imageFileName).concat("\"");
+		return if (imageFileName !== null) "\"".concat(imageFileName).concat("\"") else "";
 	}
 }
 
diff --git a/org.eclipse.osbp.xtext.menu.ui/xtend-gen/.gitignore b/org.eclipse.osbp.xtext.menu.ui/xtend-gen/.gitignore
deleted file mode 100644
index f36f8b1..0000000
--- a/org.eclipse.osbp.xtext.menu.ui/xtend-gen/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-/.MenuDslDescriptionLabelProvider.xtendbin
-/.MenuDslLabelProvider.xtendbin
-/.MenuDslOutlineTreeProvider.xtendbin
-/.MenuDslProposalProvider.xtendbin
-/.MenuDslQuickfixProvider.xtendbin
diff --git a/org.eclipse.osbp.xtext.menu.ui/xtend-gen/org/eclipse/osbp/xtext/menu/ui/contentassist/.gitignore b/org.eclipse.osbp.xtext.menu.ui/xtend-gen/org/eclipse/osbp/xtext/menu/ui/contentassist/.gitignore
deleted file mode 100644
index 3ca567d..0000000
--- a/org.eclipse.osbp.xtext.menu.ui/xtend-gen/org/eclipse/osbp/xtext/menu/ui/contentassist/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/ImageFileNameTextApplier.java
-/MenuDslProposalProvider.java
diff --git a/org.eclipse.osbp.xtext.menu.ui/xtend-gen/org/eclipse/osbp/xtext/menu/ui/contentassist/ImageFileNameTextApplier.java b/org.eclipse.osbp.xtext.menu.ui/xtend-gen/org/eclipse/osbp/xtext/menu/ui/contentassist/ImageFileNameTextApplier.java
index b2bde8f..071fff9 100644
--- a/org.eclipse.osbp.xtext.menu.ui/xtend-gen/org/eclipse/osbp/xtext/menu/ui/contentassist/ImageFileNameTextApplier.java
+++ b/org.eclipse.osbp.xtext.menu.ui/xtend-gen/org/eclipse/osbp/xtext/menu/ui/contentassist/ImageFileNameTextApplier.java
@@ -47,6 +47,12 @@
     ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(shell, 16);
     imageSelectorDialog.setFilterExtensions(this.extensions);
     String imageFileName = imageSelectorDialog.open(true);
-    return "\"".concat(imageFileName).concat("\"");
+    String _xifexpression = null;
+    if ((imageFileName != null)) {
+      _xifexpression = "\"".concat(imageFileName).concat("\"");
+    } else {
+      _xifexpression = "";
+    }
+    return _xifexpression;
   }
 }
diff --git a/org.eclipse.osbp.xtext.menu.ui/xtend-gen/org/eclipse/osbp/xtext/menu/ui/labeling/.gitignore b/org.eclipse.osbp.xtext.menu.ui/xtend-gen/org/eclipse/osbp/xtext/menu/ui/labeling/.gitignore
deleted file mode 100644
index a1bb3c3..0000000
--- a/org.eclipse.osbp.xtext.menu.ui/xtend-gen/org/eclipse/osbp/xtext/menu/ui/labeling/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/MenuDslDescriptionLabelProvider.java
-/MenuDslLabelProvider.java
diff --git a/org.eclipse.osbp.xtext.menu.ui/xtend-gen/org/eclipse/osbp/xtext/menu/ui/outline/.gitignore b/org.eclipse.osbp.xtext.menu.ui/xtend-gen/org/eclipse/osbp/xtext/menu/ui/outline/.gitignore
deleted file mode 100644
index c1fbcd7..0000000
--- a/org.eclipse.osbp.xtext.menu.ui/xtend-gen/org/eclipse/osbp/xtext/menu/ui/outline/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/MenuDslOutlineTreeProvider.java
diff --git a/org.eclipse.osbp.xtext.menu.ui/xtend-gen/org/eclipse/osbp/xtext/menu/ui/quickfix/.gitignore b/org.eclipse.osbp.xtext.menu.ui/xtend-gen/org/eclipse/osbp/xtext/menu/ui/quickfix/.gitignore
deleted file mode 100644
index e9dfa24..0000000
--- a/org.eclipse.osbp.xtext.menu.ui/xtend-gen/org/eclipse/osbp/xtext/menu/ui/quickfix/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/MenuDslQuickfixProvider.java
diff --git a/org.eclipse.osbp.xtext.menu/build.properties b/org.eclipse.osbp.xtext.menu/build.properties
index ab84fea..11fd77f 100644
--- a/org.eclipse.osbp.xtext.menu/build.properties
+++ b/org.eclipse.osbp.xtext.menu/build.properties
@@ -3,6 +3,7 @@
                META-INF/,\
                plugin.xml,\
                plugin.properties,\
+			   epl-2.0.html,\
                LICENSE.txt,\
                license.html
 jars.compile.order = .
@@ -12,4 +13,5 @@
 		   xtend-gen
 output.. = target/classes/
 src.includes = about.properties,  about.mappings,  about.ini,  about.html,  LICENSE.txt,\
+			   epl-2.0.html,\
                license.html
diff --git a/org.eclipse.osbp.xtext.menu/src-gen/org/eclipse/osbp/xtext/menu/parser/antlr/internal/InternalMenuDslLexer.java b/org.eclipse.osbp.xtext.menu/src-gen/org/eclipse/osbp/xtext/menu/parser/antlr/internal/InternalMenuDslLexer.java
index 2ea53eb..fc3162b 100644
--- a/org.eclipse.osbp.xtext.menu/src-gen/org/eclipse/osbp/xtext/menu/parser/antlr/internal/InternalMenuDslLexer.java
+++ b/org.eclipse.osbp.xtext.menu/src-gen/org/eclipse/osbp/xtext/menu/parser/antlr/internal/InternalMenuDslLexer.java
@@ -1,3 +1,13 @@
+/* 
+ * Copyright (c) 2014,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:  
+ *		Loetz GmbH&Co.KG - Initial implementation 
+ */
 package org.eclipse.osbp.xtext.menu.parser.antlr.internal;
 
 // Hack: Use our own Lexer superclass by means of import. 
@@ -4243,4 +4253,4 @@
     }
  
 
-}
\ No newline at end of file
+}
diff --git a/org.eclipse.osbp.xtext.menu/src/org/eclipse/osbp/xtext/menu/jvmmodel/MenuDslJvmModelInferrer.xtend b/org.eclipse.osbp.xtext.menu/src/org/eclipse/osbp/xtext/menu/jvmmodel/MenuDslJvmModelInferrer.xtend
index ae14012..db2be48 100644
--- a/org.eclipse.osbp.xtext.menu/src/org/eclipse/osbp/xtext/menu/jvmmodel/MenuDslJvmModelInferrer.xtend
+++ b/org.eclipse.osbp.xtext.menu/src/org/eclipse/osbp/xtext/menu/jvmmodel/MenuDslJvmModelInferrer.xtend
@@ -33,7 +33,6 @@
 import org.eclipse.e4.core.contexts.IEclipseContext
 import org.eclipse.e4.core.di.annotations.Optional
 import org.eclipse.osbp.bpm.api.IBPMEngine
-import org.eclipse.osbp.bpm.api.IBlipBPMFunctionProvider
 import org.eclipse.osbp.runtime.common.event.IEventDispatcher
 import org.eclipse.osbp.ui.api.contextfunction.IUserMenuProvider
 import org.eclipse.osbp.ui.api.contextfunction.IVaadinDialogProvider
@@ -72,10 +71,8 @@
 	@Named(Constants.FILE_EXTENSIONS) String fileExtension
 	@Inject extension CommonUtils
 
-	var String binderClassName = ""
 	var String contextClassName = ""
 	var String clsName = ""
-	var flagTreeMenu = false
 	
    	def dispatch void infer(MenuPackage pkg, IJvmDeclaredTypeAcceptor acceptor, boolean isPreIndexingPhase) {
 		clsName = pkg.eResource.URI.lastSegment.replace("."+fileExtension,"").toFirstUpper+fileExtension.toFirstUpper
@@ -231,8 +228,6 @@
 		type.members += field
 		field = pkg.toField("downloadPerspectiveHandler", _typeReferenceBuilder.typeRef(IMenuItemHandler))[annotations += _annotationTypesBuilder.annotationRef(Inject) annotations += _annotationTypesBuilder.annotationRef(Optional) annotations += _annotationTypesBuilder.annotationRef(Named, "DownloadPerspectiveHandler")]
 		type.members += field
-		field = pkg.toField("blip", _typeReferenceBuilder.typeRef(IBlipBPMFunctionProvider)) [annotations += _annotationTypesBuilder.annotationRef(Inject)]
-		type.members += field
 		field = pkg.toField("tabs",
 			_typeReferenceBuilder.typeRef(HashMap, _typeReferenceBuilder.typeRef(TabSheet.Tab), _typeReferenceBuilder.typeRef(Pair, _typeReferenceBuilder.typeRef(String), _typeReferenceBuilder.typeRef(String))))
 		type.members += field
@@ -341,7 +336,7 @@
    	
    	def init(MenuPackage pkg)
    		'''
-		bpmnWindow = new BpmnWindow(bpmEngine, blip, context);
+		bpmnWindow = new BpmnWindow(bpmEngine, context);
 		tabs = new HashMap<>();
 		items = new HashMap<>();
 		user.addUserLocaleListener(this);
@@ -427,7 +422,13 @@
 				UserMenuItem item = (UserMenuItem) ((Tree)event.getProperty()).getValue();
 				if(item != null) {
 					if(item.getType() == UserMenuItemType.PROCESS) {
-						bpmnWindow.showBpmn(item.getCallId());
+						bpmEngine.registerProcess(item.getCallId());
+						if(bpmEngine.processHasErrors()) {
+							String errorMessage = bpmEngine.getKnowledgeBuilderErrors().stream().map(e->e.toString()).collect(Collectors.joining("\n"));
+							Notification.show(errorMessage, Type.ERROR_MESSAGE);
+						} else {
+							bpmnWindow.showBpmn(item.getCallId());
+						}
 					} 
 					else if(item.getType() == UserMenuItemType.PERSPECTIVE) {
 						bpmnWindow.closeBpmn();
@@ -451,7 +452,7 @@
 			«IF category.hasUserFilter»
 			if(userAccessService.isSuperuser()) {
 			«ELSE»
-			if(true) {
+			if(dslMetadataService.isMenuCategoryAuthorized("«category.fullyQualifiedName»", userAccessService)) {
 			«ENDIF»
 				VerticalLayout tab«category.name.toFirstUpper» = new VerticalLayout();
 				Tree category«category.name.toFirstUpper» = new Tree();
@@ -481,34 +482,36 @@
 					reportPrinter.createView(tab«category.name.toFirstUpper»);
 				«ENDIF»
 				«FOR tree:category.trees»
-					UserMenuItem «tree.name» = new UserMenuItem(dslMetadataService, "«tree.name»", "«tree.name»", UserMenuItemType.NONE, "«tree.tooltip»", null);
-					items.put(«tree.name», "«tree.name»");
-					category«category.name.toFirstUpper».addItem(«tree.name»);
-					category«category.name.toFirstUpper».setChildrenAllowed(«tree.name», true);
-					«FOR entry:tree.entries»
-						«IF entry.hasProcess»
-						if(bpmEngine != null && userAccessService.isGranted(Group.PROCESS, Action.STARTABLE, "«entry.process.name»")) {
-						«ELSE»
-						if(true) {
-						«ENDIF»
-							UserMenuItem «tree.name»«entry.name» = new UserMenuItem(dslMetadataService, "«entry.name»", 
-							«IF entry.hasProcess»"«entry.process.name»"
-							«ELSEIF entry.hasPerspective»"«entry.perspective.fullyQualifiedName»"
-							«ELSE»""
-							«ENDIF», UserMenuItemType.«IF entry.hasProcess»PROCESS, "«entry.process.descriptionValue»"
-							«ELSEIF entry.hasPerspective»PERSPECTIVE, "«entry.perspective.descriptionValue»"«
-							ELSE»NONE, ""
-							«ENDIF», "«entry.icon»");
-							items.put(«tree.name»«entry.name», "«entry.name»");
-							category«category.name.toFirstUpper».addItem(«tree.name»«entry.name»);
-							category«category.name.toFirstUpper».setParent(«tree.name»«entry.name», «tree.name»);
-							category«category.name.toFirstUpper».setChildrenAllowed(«tree.name»«entry.name», false);
-							«IF entry.hasIcon»
-							category«category.name.toFirstUpper».setItemIcon(«tree.name»«entry.name», themeResourceService.getThemeResource("«entry.icon»", ThemeResourceType.ICON));
+					if(dslMetadataService.isMenuTreeAuthorized("«tree.fullyQualifiedName»", userAccessService)) {
+						UserMenuItem «tree.name» = new UserMenuItem(dslMetadataService, "«tree.name»", "«tree.name»", UserMenuItemType.NONE, "«tree.tooltip»", null);
+						items.put(«tree.name», "«tree.name»");
+						category«category.name.toFirstUpper».addItem(«tree.name»);
+						category«category.name.toFirstUpper».setChildrenAllowed(«tree.name», true);
+						«FOR entry:tree.entries»
+							«IF entry.hasProcess»
+							if(bpmEngine != null && userAccessService.isGranted(Group.PROCESS, Action.STARTABLE, "«entry.process.name»")) {
+							«ELSE»
+							if(dslMetadataService.isPerspectiveAuthorized("«entry.perspective.fullyQualifiedName»", userAccessService)) {
 							«ENDIF»
-						}
-						
-					«ENDFOR»
+								UserMenuItem «tree.name»«entry.name» = new UserMenuItem(dslMetadataService, "«entry.name»", 
+								«IF entry.hasProcess»"«entry.process.name»"
+								«ELSEIF entry.hasPerspective»"«entry.perspective.fullyQualifiedName»"
+								«ELSE»""
+								«ENDIF», UserMenuItemType.«IF entry.hasProcess»PROCESS, "«entry.process.descriptionValue»"
+								«ELSEIF entry.hasPerspective»PERSPECTIVE, "«entry.perspective.descriptionValue»"«
+								ELSE»NONE, ""
+								«ENDIF», "«entry.icon»");
+								items.put(«tree.name»«entry.name», "«entry.name»");
+								category«category.name.toFirstUpper».addItem(«tree.name»«entry.name»);
+								category«category.name.toFirstUpper».setParent(«tree.name»«entry.name», «tree.name»);
+								category«category.name.toFirstUpper».setChildrenAllowed(«tree.name»«entry.name», false);
+								«IF entry.hasIcon»
+								category«category.name.toFirstUpper».setItemIcon(«tree.name»«entry.name», themeResourceService.getThemeResource("«entry.icon»", ThemeResourceType.ICON));
+								«ENDIF»
+							}
+							
+						«ENDFOR»
+					}
 				«ENDFOR»
 			}
 		«ENDFOR»
diff --git a/org.eclipse.osbp.xtext.menu/src/org/eclipse/osbp/xtext/menu/jvmmodel/MenuModelGenerator.xtend b/org.eclipse.osbp.xtext.menu/src/org/eclipse/osbp/xtext/menu/jvmmodel/MenuModelGenerator.xtend
index 0b2fc78..978d403 100644
--- a/org.eclipse.osbp.xtext.menu/src/org/eclipse/osbp/xtext/menu/jvmmodel/MenuModelGenerator.xtend
+++ b/org.eclipse.osbp.xtext.menu/src/org/eclipse/osbp/xtext/menu/jvmmodel/MenuModelGenerator.xtend
@@ -16,8 +16,7 @@
  *  This copyright notice shows up in the generated Java code
  *
  */
- 
-package org.eclipse.osbp.xtext.menu.jvmmodel
+ package org.eclipse.osbp.xtext.menu.jvmmodel
 
 import com.vaadin.data.Property.ValueChangeEvent
 import com.vaadin.data.Property.ValueChangeListener
@@ -68,6 +67,7 @@
 import org.eclipse.xtext.xbase.compiler.GeneratorConfig
 import org.eclipse.xtext.xbase.compiler.ImportManager
 import org.vaadin.hene.popupbutton.PopupButton
+import java.util.stream.Collectors
 
 class MenuModelGenerator extends I18NModelGenerator { 
 	@Inject extension BasicDslGeneratorUtils
@@ -92,6 +92,8 @@
 			, SelectedTabChangeListener
 			, SelectedTabChangeEvent
 			, Notification
+			, Notification.Type
+			, Collectors
 			, IBlipBPMFunctionProvider
 			, com.vaadin.server.Resource
 			, Tab
diff --git a/org.eclipse.osbp.xtext.menu/xtend-gen/.gitignore b/org.eclipse.osbp.xtext.menu/xtend-gen/.gitignore
deleted file mode 100644
index c31378f..0000000
--- a/org.eclipse.osbp.xtext.menu/xtend-gen/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-/.MenuDslFormatter.xtendbin
-/.MenuDslJvmModelInferrer.xtendbin
-/.MenuDslScopeProvider.xtendbin
-/.MenuDslValidator.xtendbin
-/.MenuModelGenerator.xtendbin
diff --git a/org.eclipse.osbp.xtext.menu/xtend-gen/org/eclipse/osbp/xtext/menu/formatting/.gitignore b/org.eclipse.osbp.xtext.menu/xtend-gen/org/eclipse/osbp/xtext/menu/formatting/.gitignore
deleted file mode 100644
index d4f3f2d..0000000
--- a/org.eclipse.osbp.xtext.menu/xtend-gen/org/eclipse/osbp/xtext/menu/formatting/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/MenuDslFormatter.java
diff --git a/org.eclipse.osbp.xtext.menu/xtend-gen/org/eclipse/osbp/xtext/menu/jvmmodel/.gitignore b/org.eclipse.osbp.xtext.menu/xtend-gen/org/eclipse/osbp/xtext/menu/jvmmodel/.gitignore
deleted file mode 100644
index e2c2970..0000000
--- a/org.eclipse.osbp.xtext.menu/xtend-gen/org/eclipse/osbp/xtext/menu/jvmmodel/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/MenuDslJvmModelInferrer.java
-/MenuModelGenerator.java
diff --git a/org.eclipse.osbp.xtext.menu/xtend-gen/org/eclipse/osbp/xtext/menu/jvmmodel/MenuDslJvmModelInferrer.java b/org.eclipse.osbp.xtext.menu/xtend-gen/org/eclipse/osbp/xtext/menu/jvmmodel/MenuDslJvmModelInferrer.java
index 400eedb..9bf16b6 100644
--- a/org.eclipse.osbp.xtext.menu/xtend-gen/org/eclipse/osbp/xtext/menu/jvmmodel/MenuDslJvmModelInferrer.java
+++ b/org.eclipse.osbp.xtext.menu/xtend-gen/org/eclipse/osbp/xtext/menu/jvmmodel/MenuDslJvmModelInferrer.java
@@ -34,7 +34,6 @@
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.osbp.bpm.api.IBPMEngine;
-import org.eclipse.osbp.bpm.api.IBlipBPMFunctionProvider;
 import org.eclipse.osbp.runtime.common.event.IEventDispatcher;
 import org.eclipse.osbp.ui.api.contextfunction.IUserMenuProvider;
 import org.eclipse.osbp.ui.api.contextfunction.IVaadinDialogProvider;
@@ -98,14 +97,10 @@
   @Extension
   private CommonUtils _commonUtils;
   
-  private String binderClassName = "";
-  
   private String contextClassName = "";
   
   private String clsName = "";
   
-  private boolean flagTreeMenu = false;
-  
   protected void _infer(final MenuPackage pkg, final IJvmDeclaredTypeAcceptor acceptor, final boolean isPreIndexingPhase) {
     String _firstUpper = StringExtensions.toFirstUpper(pkg.eResource().getURI().lastSegment().replace(("." + this.fileExtension), ""));
     String _firstUpper_1 = StringExtensions.toFirstUpper(this.fileExtension);
@@ -471,23 +466,15 @@
     field = this._jvmTypesBuilder.toField(pkg, "downloadPerspectiveHandler", this._typeReferenceBuilder.typeRef(IMenuItemHandler.class), _function_16);
     EList<JvmMember> _members_28 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_28, field);
-    final Procedure1<JvmField> _function_17 = (JvmField it) -> {
-      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-      JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Inject.class);
-      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
-    };
-    field = this._jvmTypesBuilder.toField(pkg, "blip", this._typeReferenceBuilder.typeRef(IBlipBPMFunctionProvider.class), _function_17);
-    EList<JvmMember> _members_29 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_29, field);
     field = this._jvmTypesBuilder.toField(pkg, "tabs", 
       this._typeReferenceBuilder.typeRef(HashMap.class, this._typeReferenceBuilder.typeRef(TabSheet.Tab.class), this._typeReferenceBuilder.typeRef(Pair.class, this._typeReferenceBuilder.typeRef(String.class), this._typeReferenceBuilder.typeRef(String.class))));
-    EList<JvmMember> _members_30 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_30, field);
+    EList<JvmMember> _members_29 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_29, field);
     field = this._jvmTypesBuilder.toField(pkg, "items", 
       this._typeReferenceBuilder.typeRef(HashMap.class, this._typeReferenceBuilder.typeRef(UserMenuItem.class), this._typeReferenceBuilder.typeRef(String.class)));
-    EList<JvmMember> _members_31 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_31, field);
-    final Procedure1<JvmField> _function_18 = (JvmField it) -> {
+    EList<JvmMember> _members_30 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_30, field);
+    final Procedure1<JvmField> _function_17 = (JvmField it) -> {
       EList<JvmAnnotationReference> _annotations = it.getAnnotations();
       JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Inject.class);
       this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
@@ -495,10 +482,10 @@
       JvmAnnotationReference _annotationRef_1 = this._annotationTypesBuilder.annotationRef(Named.class, "UserFilter");
       this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations_1, _annotationRef_1);
     };
-    field = this._jvmTypesBuilder.toField(pkg, "userFilter", this._typeReferenceBuilder.typeRef(IVaadinDialogProvider.class), _function_18);
-    EList<JvmMember> _members_32 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_32, field);
-    final Procedure1<JvmField> _function_19 = (JvmField it) -> {
+    field = this._jvmTypesBuilder.toField(pkg, "userFilter", this._typeReferenceBuilder.typeRef(IVaadinDialogProvider.class), _function_17);
+    EList<JvmMember> _members_31 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_31, field);
+    final Procedure1<JvmField> _function_18 = (JvmField it) -> {
       EList<JvmAnnotationReference> _annotations = it.getAnnotations();
       JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Inject.class);
       this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
@@ -506,10 +493,10 @@
       JvmAnnotationReference _annotationRef_1 = this._annotationTypesBuilder.annotationRef(Named.class, "KeyBindingDialog");
       this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations_1, _annotationRef_1);
     };
-    field = this._jvmTypesBuilder.toField(pkg, "keyBinding", this._typeReferenceBuilder.typeRef(IVaadinDialogProvider.class), _function_19);
-    EList<JvmMember> _members_33 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_33, field);
-    final Procedure1<JvmField> _function_20 = (JvmField it) -> {
+    field = this._jvmTypesBuilder.toField(pkg, "keyBinding", this._typeReferenceBuilder.typeRef(IVaadinDialogProvider.class), _function_18);
+    EList<JvmMember> _members_32 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_32, field);
+    final Procedure1<JvmField> _function_19 = (JvmField it) -> {
       EList<JvmAnnotationReference> _annotations = it.getAnnotations();
       JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Inject.class);
       this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
@@ -517,10 +504,10 @@
       JvmAnnotationReference _annotationRef_1 = this._annotationTypesBuilder.annotationRef(Named.class, "SystemSettings");
       this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations_1, _annotationRef_1);
     };
-    field = this._jvmTypesBuilder.toField(pkg, "systemSettings", this._typeReferenceBuilder.typeRef(IVaadinDialogProvider.class), _function_20);
-    EList<JvmMember> _members_34 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_34, field);
-    final Procedure1<JvmField> _function_21 = (JvmField it) -> {
+    field = this._jvmTypesBuilder.toField(pkg, "systemSettings", this._typeReferenceBuilder.typeRef(IVaadinDialogProvider.class), _function_19);
+    EList<JvmMember> _members_33 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_33, field);
+    final Procedure1<JvmField> _function_20 = (JvmField it) -> {
       EList<JvmAnnotationReference> _annotations = it.getAnnotations();
       JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Inject.class);
       this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
@@ -528,15 +515,26 @@
       JvmAnnotationReference _annotationRef_1 = this._annotationTypesBuilder.annotationRef(Named.class, "ReportPrinterDialog");
       this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations_1, _annotationRef_1);
     };
-    field = this._jvmTypesBuilder.toField(pkg, "reportPrinter", this._typeReferenceBuilder.typeRef(IVaadinDialogProvider.class), _function_21);
-    EList<JvmMember> _members_35 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_35, field);
-    final Procedure1<JvmField> _function_22 = (JvmField it) -> {
+    field = this._jvmTypesBuilder.toField(pkg, "reportPrinter", this._typeReferenceBuilder.typeRef(IVaadinDialogProvider.class), _function_20);
+    EList<JvmMember> _members_34 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_34, field);
+    final Procedure1<JvmField> _function_21 = (JvmField it) -> {
       EList<JvmAnnotationReference> _annotations = it.getAnnotations();
       JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Inject.class);
       this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
     };
-    field = this._jvmTypesBuilder.toField(pkg, "executorService", this._typeReferenceBuilder.typeRef(VaadinExecutorService.class), _function_22);
+    field = this._jvmTypesBuilder.toField(pkg, "executorService", this._typeReferenceBuilder.typeRef(VaadinExecutorService.class), _function_21);
+    EList<JvmMember> _members_35 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_35, field);
+    final Procedure1<JvmField> _function_22 = (JvmField it) -> {
+      final Procedure1<ITreeAppendable> _function_23 = (ITreeAppendable it_1) -> {
+        StringConcatenation _builder = new StringConcatenation();
+        _builder.append("new HashMap<>()");
+        it_1.append(_builder);
+      };
+      this._jvmTypesBuilder.setInitializer(it, _function_23);
+    };
+    field = this._jvmTypesBuilder.toField(pkg, "enabledUpdaters", this._typeReferenceBuilder.typeRef(HashMap.class, this._typeReferenceBuilder.typeRef(MenuBar.MenuItem.class), this._typeReferenceBuilder.typeRef(Runnable.class)), _function_22);
     EList<JvmMember> _members_36 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_36, field);
     final Procedure1<JvmField> _function_23 = (JvmField it) -> {
@@ -547,23 +545,12 @@
       };
       this._jvmTypesBuilder.setInitializer(it, _function_24);
     };
-    field = this._jvmTypesBuilder.toField(pkg, "enabledUpdaters", this._typeReferenceBuilder.typeRef(HashMap.class, this._typeReferenceBuilder.typeRef(MenuBar.MenuItem.class), this._typeReferenceBuilder.typeRef(Runnable.class)), _function_23);
+    field = this._jvmTypesBuilder.toField(pkg, "menuItems", this._typeReferenceBuilder.typeRef(HashMap.class, this._typeReferenceBuilder.typeRef(IMenuItemHandler.class), this._typeReferenceBuilder.typeRef(MenuBar.MenuItem.class)), _function_23);
     EList<JvmMember> _members_37 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_37, field);
-    final Procedure1<JvmField> _function_24 = (JvmField it) -> {
-      final Procedure1<ITreeAppendable> _function_25 = (ITreeAppendable it_1) -> {
-        StringConcatenation _builder = new StringConcatenation();
-        _builder.append("new HashMap<>()");
-        it_1.append(_builder);
-      };
-      this._jvmTypesBuilder.setInitializer(it, _function_25);
-    };
-    field = this._jvmTypesBuilder.toField(pkg, "menuItems", this._typeReferenceBuilder.typeRef(HashMap.class, this._typeReferenceBuilder.typeRef(IMenuItemHandler.class), this._typeReferenceBuilder.typeRef(MenuBar.MenuItem.class)), _function_24);
+    field = this._jvmTypesBuilder.toField(pkg, "bpmnWindow", this._typeReferenceBuilder.typeRef(BpmnWindow.class));
     EList<JvmMember> _members_38 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_38, field);
-    field = this._jvmTypesBuilder.toField(pkg, "bpmnWindow", this._typeReferenceBuilder.typeRef(BpmnWindow.class));
-    EList<JvmMember> _members_39 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_39, field);
   }
   
   public void toOperations(final JvmDeclaredType type, final MenuPackage pkg) {
@@ -762,7 +749,7 @@
   
   public CharSequence init(final MenuPackage pkg) {
     StringConcatenation _builder = new StringConcatenation();
-    _builder.append("bpmnWindow = new BpmnWindow(bpmEngine, blip, context);");
+    _builder.append("bpmnWindow = new BpmnWindow(bpmEngine, context);");
     _builder.newLine();
     _builder.append("tabs = new HashMap<>();");
     _builder.newLine();
@@ -982,8 +969,26 @@
     _builder.append("if(item.getType() == UserMenuItemType.PROCESS) {");
     _builder.newLine();
     _builder.append("\t\t\t\t");
+    _builder.append("bpmEngine.registerProcess(item.getCallId());");
+    _builder.newLine();
+    _builder.append("\t\t\t\t");
+    _builder.append("if(bpmEngine.processHasErrors()) {");
+    _builder.newLine();
+    _builder.append("\t\t\t\t\t");
+    _builder.append("String errorMessage = bpmEngine.getKnowledgeBuilderErrors().stream().map(e->e.toString()).collect(Collectors.joining(\"\\n\"));");
+    _builder.newLine();
+    _builder.append("\t\t\t\t\t");
+    _builder.append("Notification.show(errorMessage, Type.ERROR_MESSAGE);");
+    _builder.newLine();
+    _builder.append("\t\t\t\t");
+    _builder.append("} else {");
+    _builder.newLine();
+    _builder.append("\t\t\t\t\t");
     _builder.append("bpmnWindow.showBpmn(item.getCallId());");
     _builder.newLine();
+    _builder.append("\t\t\t\t");
+    _builder.append("}");
+    _builder.newLine();
     _builder.append("\t\t\t");
     _builder.append("} ");
     _builder.newLine();
@@ -1067,8 +1072,11 @@
             _builder.append("if(userAccessService.isSuperuser()) {");
             _builder.newLine();
           } else {
-            _builder.append("if(true) {");
-            _builder.newLine();
+            _builder.append("if(dslMetadataService.isMenuCategoryAuthorized(\"");
+            QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(category);
+            _builder.append(_fullyQualifiedName);
+            _builder.append("\", userAccessService)) {");
+            _builder.newLineIfNotEmpty();
           }
         }
         _builder.append("\t");
@@ -1249,45 +1257,55 @@
           EList<MenuTree> _trees = category.getTrees();
           for(final MenuTree tree : _trees) {
             _builder.append("\t");
+            _builder.append("if(dslMetadataService.isMenuTreeAuthorized(\"");
+            QualifiedName _fullyQualifiedName_1 = this._iQualifiedNameProvider.getFullyQualifiedName(tree);
+            _builder.append(_fullyQualifiedName_1, "\t");
+            _builder.append("\", userAccessService)) {");
+            _builder.newLineIfNotEmpty();
+            _builder.append("\t");
+            _builder.append("\t");
             _builder.append("UserMenuItem ");
             String _name_3 = tree.getName();
-            _builder.append(_name_3, "\t");
+            _builder.append(_name_3, "\t\t");
             _builder.append(" = new UserMenuItem(dslMetadataService, \"");
             String _name_4 = tree.getName();
-            _builder.append(_name_4, "\t");
+            _builder.append(_name_4, "\t\t");
             _builder.append("\", \"");
             String _name_5 = tree.getName();
-            _builder.append(_name_5, "\t");
+            _builder.append(_name_5, "\t\t");
             _builder.append("\", UserMenuItemType.NONE, \"");
             String _tooltip = tree.getTooltip();
-            _builder.append(_tooltip, "\t");
+            _builder.append(_tooltip, "\t\t");
             _builder.append("\", null);");
             _builder.newLineIfNotEmpty();
             _builder.append("\t");
+            _builder.append("\t");
             _builder.append("items.put(");
             String _name_6 = tree.getName();
-            _builder.append(_name_6, "\t");
+            _builder.append(_name_6, "\t\t");
             _builder.append(", \"");
             String _name_7 = tree.getName();
-            _builder.append(_name_7, "\t");
+            _builder.append(_name_7, "\t\t");
             _builder.append("\");");
             _builder.newLineIfNotEmpty();
             _builder.append("\t");
+            _builder.append("\t");
             _builder.append("category");
             String _firstUpper_18 = StringExtensions.toFirstUpper(category.getName());
-            _builder.append(_firstUpper_18, "\t");
+            _builder.append(_firstUpper_18, "\t\t");
             _builder.append(".addItem(");
             String _name_8 = tree.getName();
-            _builder.append(_name_8, "\t");
+            _builder.append(_name_8, "\t\t");
             _builder.append(");");
             _builder.newLineIfNotEmpty();
             _builder.append("\t");
+            _builder.append("\t");
             _builder.append("category");
             String _firstUpper_19 = StringExtensions.toFirstUpper(category.getName());
-            _builder.append(_firstUpper_19, "\t");
+            _builder.append(_firstUpper_19, "\t\t");
             _builder.append(".setChildrenAllowed(");
             String _name_9 = tree.getName();
-            _builder.append(_name_9, "\t");
+            _builder.append(_name_9, "\t\t");
             _builder.append(", true);");
             _builder.newLineIfNotEmpty();
             {
@@ -1297,56 +1315,66 @@
                   boolean _isHasProcess = entry.isHasProcess();
                   if (_isHasProcess) {
                     _builder.append("\t");
+                    _builder.append("\t");
                     _builder.append("if(bpmEngine != null && userAccessService.isGranted(Group.PROCESS, Action.STARTABLE, \"");
                     String _name_10 = entry.getProcess().getName();
-                    _builder.append(_name_10, "\t");
+                    _builder.append(_name_10, "\t\t");
                     _builder.append("\")) {");
                     _builder.newLineIfNotEmpty();
                   } else {
                     _builder.append("\t");
-                    _builder.append("if(true) {");
-                    _builder.newLine();
+                    _builder.append("\t");
+                    _builder.append("if(dslMetadataService.isPerspectiveAuthorized(\"");
+                    QualifiedName _fullyQualifiedName_2 = this._iQualifiedNameProvider.getFullyQualifiedName(entry.getPerspective());
+                    _builder.append(_fullyQualifiedName_2, "\t\t");
+                    _builder.append("\", userAccessService)) {");
+                    _builder.newLineIfNotEmpty();
                   }
                 }
                 _builder.append("\t");
                 _builder.append("\t");
+                _builder.append("\t");
                 _builder.append("UserMenuItem ");
                 String _name_11 = tree.getName();
-                _builder.append(_name_11, "\t\t");
+                _builder.append(_name_11, "\t\t\t");
                 String _name_12 = entry.getName();
-                _builder.append(_name_12, "\t\t");
+                _builder.append(_name_12, "\t\t\t");
                 _builder.append(" = new UserMenuItem(dslMetadataService, \"");
                 String _name_13 = entry.getName();
-                _builder.append(_name_13, "\t\t");
+                _builder.append(_name_13, "\t\t\t");
                 _builder.append("\", ");
                 _builder.newLineIfNotEmpty();
                 _builder.append("\t");
                 _builder.append("\t");
+                _builder.append("\t");
                 {
                   boolean _isHasProcess_1 = entry.isHasProcess();
                   if (_isHasProcess_1) {
                     _builder.append("\"");
                     String _name_14 = entry.getProcess().getName();
-                    _builder.append(_name_14, "\t\t");
+                    _builder.append(_name_14, "\t\t\t");
                     _builder.append("\"");
                     _builder.newLineIfNotEmpty();
                     _builder.append("\t");
                     _builder.append("\t");
+                    _builder.append("\t");
                   } else {
                     boolean _isHasPerspective = entry.isHasPerspective();
                     if (_isHasPerspective) {
                       _builder.append("\"");
-                      QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(entry.getPerspective());
-                      _builder.append(_fullyQualifiedName, "\t\t");
+                      QualifiedName _fullyQualifiedName_3 = this._iQualifiedNameProvider.getFullyQualifiedName(entry.getPerspective());
+                      _builder.append(_fullyQualifiedName_3, "\t\t\t");
                       _builder.append("\"");
                       _builder.newLineIfNotEmpty();
                       _builder.append("\t");
                       _builder.append("\t");
+                      _builder.append("\t");
                     } else {
                       _builder.append("\"\"");
                       _builder.newLineIfNotEmpty();
                       _builder.append("\t");
                       _builder.append("\t");
+                      _builder.append("\t");
                     }
                   }
                 }
@@ -1356,80 +1384,86 @@
                   if (_isHasProcess_2) {
                     _builder.append("PROCESS, \"");
                     String _descriptionValue = entry.getProcess().getDescriptionValue();
-                    _builder.append(_descriptionValue, "\t\t");
+                    _builder.append(_descriptionValue, "\t\t\t");
                     _builder.append("\"");
                     _builder.newLineIfNotEmpty();
                     _builder.append("\t");
                     _builder.append("\t");
+                    _builder.append("\t");
                   } else {
                     boolean _isHasPerspective_1 = entry.isHasPerspective();
                     if (_isHasPerspective_1) {
                       _builder.append("PERSPECTIVE, \"");
                       String _descriptionValue_1 = entry.getPerspective().getDescriptionValue();
-                      _builder.append(_descriptionValue_1, "\t\t");
+                      _builder.append(_descriptionValue_1, "\t\t\t");
                       _builder.append("\"");
                     } else {
                       _builder.append("NONE, \"\"");
                       _builder.newLineIfNotEmpty();
                       _builder.append("\t");
                       _builder.append("\t");
+                      _builder.append("\t");
                     }
                   }
                 }
                 _builder.append(", \"");
                 String _icon = entry.getIcon();
-                _builder.append(_icon, "\t\t");
+                _builder.append(_icon, "\t\t\t");
                 _builder.append("\");");
                 _builder.newLineIfNotEmpty();
                 _builder.append("\t");
                 _builder.append("\t");
+                _builder.append("\t");
                 _builder.append("items.put(");
                 String _name_15 = tree.getName();
-                _builder.append(_name_15, "\t\t");
+                _builder.append(_name_15, "\t\t\t");
                 String _name_16 = entry.getName();
-                _builder.append(_name_16, "\t\t");
+                _builder.append(_name_16, "\t\t\t");
                 _builder.append(", \"");
                 String _name_17 = entry.getName();
-                _builder.append(_name_17, "\t\t");
+                _builder.append(_name_17, "\t\t\t");
                 _builder.append("\");");
                 _builder.newLineIfNotEmpty();
                 _builder.append("\t");
                 _builder.append("\t");
+                _builder.append("\t");
                 _builder.append("category");
                 String _firstUpper_20 = StringExtensions.toFirstUpper(category.getName());
-                _builder.append(_firstUpper_20, "\t\t");
+                _builder.append(_firstUpper_20, "\t\t\t");
                 _builder.append(".addItem(");
                 String _name_18 = tree.getName();
-                _builder.append(_name_18, "\t\t");
+                _builder.append(_name_18, "\t\t\t");
                 String _name_19 = entry.getName();
-                _builder.append(_name_19, "\t\t");
+                _builder.append(_name_19, "\t\t\t");
                 _builder.append(");");
                 _builder.newLineIfNotEmpty();
                 _builder.append("\t");
                 _builder.append("\t");
+                _builder.append("\t");
                 _builder.append("category");
                 String _firstUpper_21 = StringExtensions.toFirstUpper(category.getName());
-                _builder.append(_firstUpper_21, "\t\t");
+                _builder.append(_firstUpper_21, "\t\t\t");
                 _builder.append(".setParent(");
                 String _name_20 = tree.getName();
-                _builder.append(_name_20, "\t\t");
+                _builder.append(_name_20, "\t\t\t");
                 String _name_21 = entry.getName();
-                _builder.append(_name_21, "\t\t");
+                _builder.append(_name_21, "\t\t\t");
                 _builder.append(", ");
                 String _name_22 = tree.getName();
-                _builder.append(_name_22, "\t\t");
+                _builder.append(_name_22, "\t\t\t");
                 _builder.append(");");
                 _builder.newLineIfNotEmpty();
                 _builder.append("\t");
                 _builder.append("\t");
+                _builder.append("\t");
                 _builder.append("category");
                 String _firstUpper_22 = StringExtensions.toFirstUpper(category.getName());
-                _builder.append(_firstUpper_22, "\t\t");
+                _builder.append(_firstUpper_22, "\t\t\t");
                 _builder.append(".setChildrenAllowed(");
                 String _name_23 = tree.getName();
-                _builder.append(_name_23, "\t\t");
+                _builder.append(_name_23, "\t\t\t");
                 String _name_24 = entry.getName();
-                _builder.append(_name_24, "\t\t");
+                _builder.append(_name_24, "\t\t\t");
                 _builder.append(", false);");
                 _builder.newLineIfNotEmpty();
                 {
@@ -1437,28 +1471,34 @@
                   if (_isHasIcon) {
                     _builder.append("\t");
                     _builder.append("\t");
+                    _builder.append("\t");
                     _builder.append("category");
                     String _firstUpper_23 = StringExtensions.toFirstUpper(category.getName());
-                    _builder.append(_firstUpper_23, "\t\t");
+                    _builder.append(_firstUpper_23, "\t\t\t");
                     _builder.append(".setItemIcon(");
                     String _name_25 = tree.getName();
-                    _builder.append(_name_25, "\t\t");
+                    _builder.append(_name_25, "\t\t\t");
                     String _name_26 = entry.getName();
-                    _builder.append(_name_26, "\t\t");
+                    _builder.append(_name_26, "\t\t\t");
                     _builder.append(", themeResourceService.getThemeResource(\"");
                     String _icon_1 = entry.getIcon();
-                    _builder.append(_icon_1, "\t\t");
+                    _builder.append(_icon_1, "\t\t\t");
                     _builder.append("\", ThemeResourceType.ICON));");
                     _builder.newLineIfNotEmpty();
                   }
                 }
                 _builder.append("\t");
+                _builder.append("\t");
                 _builder.append("}");
                 _builder.newLine();
                 _builder.append("\t");
+                _builder.append("\t");
                 _builder.newLine();
               }
             }
+            _builder.append("\t");
+            _builder.append("}");
+            _builder.newLine();
           }
         }
         _builder.append("}");
diff --git a/org.eclipse.osbp.xtext.menu/xtend-gen/org/eclipse/osbp/xtext/menu/jvmmodel/MenuModelGenerator.java b/org.eclipse.osbp.xtext.menu/xtend-gen/org/eclipse/osbp/xtext/menu/jvmmodel/MenuModelGenerator.java
index a970b11..607dba2 100644
--- a/org.eclipse.osbp.xtext.menu/xtend-gen/org/eclipse/osbp/xtext/menu/jvmmodel/MenuModelGenerator.java
+++ b/org.eclipse.osbp.xtext.menu/xtend-gen/org/eclipse/osbp/xtext/menu/jvmmodel/MenuModelGenerator.java
@@ -31,6 +31,7 @@
 import com.vaadin.ui.Tree;
 import com.vaadin.ui.UI;
 import com.vaadin.ui.VerticalLayout;
+import java.util.stream.Collectors;
 import javax.inject.Inject;
 import org.eclipse.e4.core.contexts.ContextInjectionFactory;
 import org.eclipse.e4.ui.model.application.MApplication;
@@ -74,7 +75,7 @@
     TreeAppendable _xblockexpression = null;
     {
       this.setBuilder(context.eResource());
-      this._basicDslGeneratorUtils.addImportFor(this, importManager, this._typeReferenceBuilder, VerticalLayout.class, HorizontalLayout.class, AbsoluteLayout.class, Label.class, Image.class, PopupButton.class, IUserMenuProvider.class, TabSheet.SelectedTabChangeListener.class, TabSheet.SelectedTabChangeEvent.class, Notification.class, IBlipBPMFunctionProvider.class, com.vaadin.server.Resource.class, TabSheet.Tab.class, Button.class, Accordion.class, IUserAccessService.class, IBPMEngine.class, AbstractAuthorization.Group.class, AbstractAuthorization.Action.class, IThemeResourceService.class, IThemeResourceService.ThemeResourceType.class, Tree.class, Property.ValueChangeListener.class, Property.ValueChangeEvent.class, UserMenuItem.class, UserMenuItem.UserMenuItemType.class, Button.ClickListener.class, Button.ClickEvent.class, IViewEmbeddedProvider.class, MApplication.class, ContextInjectionFactory.class, Pair.class, UI.class, AbstractOrderedLayout.class, EventDispatcherEvent.EventDispatcherDataTag.class, EventDispatcherEvent.EventDispatcherCommand.class, EventDispatcherEvent.class, MenuBar.class, MenuBar.MenuItem.class, BpmnWindow.class, AbstractSelect.ItemDescriptionGenerator.class, Tree.TreeDragMode.class, MPerspective.class);
+      this._basicDslGeneratorUtils.addImportFor(this, importManager, this._typeReferenceBuilder, VerticalLayout.class, HorizontalLayout.class, AbsoluteLayout.class, Label.class, Image.class, PopupButton.class, IUserMenuProvider.class, TabSheet.SelectedTabChangeListener.class, TabSheet.SelectedTabChangeEvent.class, Notification.class, Notification.Type.class, Collectors.class, IBlipBPMFunctionProvider.class, com.vaadin.server.Resource.class, TabSheet.Tab.class, Button.class, Accordion.class, IUserAccessService.class, IBPMEngine.class, AbstractAuthorization.Group.class, AbstractAuthorization.Action.class, IThemeResourceService.class, IThemeResourceService.ThemeResourceType.class, Tree.class, Property.ValueChangeListener.class, Property.ValueChangeEvent.class, UserMenuItem.class, UserMenuItem.UserMenuItemType.class, Button.ClickListener.class, Button.ClickEvent.class, IViewEmbeddedProvider.class, MApplication.class, ContextInjectionFactory.class, Pair.class, UI.class, AbstractOrderedLayout.class, EventDispatcherEvent.EventDispatcherDataTag.class, EventDispatcherEvent.EventDispatcherCommand.class, EventDispatcherEvent.class, MenuBar.class, MenuBar.MenuItem.class, BpmnWindow.class, AbstractSelect.ItemDescriptionGenerator.class, Tree.TreeDragMode.class, MPerspective.class);
       _xblockexpression = super.createAppendable(context, importManager, config);
     }
     return _xblockexpression;
diff --git a/org.eclipse.osbp.xtext.menu/xtend-gen/org/eclipse/osbp/xtext/menu/scoping/.gitignore b/org.eclipse.osbp.xtext.menu/xtend-gen/org/eclipse/osbp/xtext/menu/scoping/.gitignore
deleted file mode 100644
index fdef469..0000000
--- a/org.eclipse.osbp.xtext.menu/xtend-gen/org/eclipse/osbp/xtext/menu/scoping/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/MenuDslScopeProvider.java
diff --git a/org.eclipse.osbp.xtext.menu/xtend-gen/org/eclipse/osbp/xtext/menu/validation/.gitignore b/org.eclipse.osbp.xtext.menu/xtend-gen/org/eclipse/osbp/xtext/menu/validation/.gitignore
deleted file mode 100644
index a7ec748..0000000
--- a/org.eclipse.osbp.xtext.menu/xtend-gen/org/eclipse/osbp/xtext/menu/validation/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/MenuDslValidator.java