diff --git a/org.fortiss.tooling.kernel.ui/build.properties b/org.fortiss.tooling.kernel.ui/build.properties
index 1554d67f7ff1243b04701de95399865c40b8da7f..e4432a590c6e2defff90ce2fbb1dd0199074cfa8 100644
--- a/org.fortiss.tooling.kernel.ui/build.properties
+++ b/org.fortiss.tooling.kernel.ui/build.properties
@@ -1,6 +1,7 @@
 # (c) 2011 fortiss GmbH
 
-source.. = src/
+source.. = src/,\
+           res/
 output.. = build/
 bin.includes = .,\
                plugin.xml,\
diff --git a/org.fortiss.tooling.kernel.ui/plugin.xml b/org.fortiss.tooling.kernel.ui/plugin.xml
index b52cc5a353826bb11a74dbed186990fa5ca83f0f..906080ba36514fd1ff4e45d47fd062150f06f2be 100644
--- a/org.fortiss.tooling.kernel.ui/plugin.xml
+++ b/org.fortiss.tooling.kernel.ui/plugin.xml
@@ -41,9 +41,9 @@
       </view>
       <view
             allowMultiple="false"
-            class="org.fortiss.tooling.kernel.ui.internal.introspection.KISSViewPart"
+            class="org.fortiss.tooling.kernel.ui.introspection.KISSServicesFXViewPart"
             icon="icons/introspection.gif"
-            id="org.fortiss.tooling.kernel.ui.introspection.view"
+            id="org.fortiss.tooling.kernel.ui.introspection"
             name="Kernel Introspection System Service (KISS)"
             restorable="true">
       </view>
diff --git a/org.fortiss.tooling.kernel.ui/res/org/fortiss/tooling/kernel/ui/introspection/KISS.fxml b/org.fortiss.tooling.kernel.ui/res/org/fortiss/tooling/kernel/ui/introspection/KISS.fxml
new file mode 100644
index 0000000000000000000000000000000000000000..1a43ce1c7c2719256bf97b1e2b60cc43c764d88d
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/res/org/fortiss/tooling/kernel/ui/introspection/KISS.fxml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.layout.BorderPane?>
+
+<BorderPane fx:id="borderPane" xmlns:fx="http://javafx.com/fxml/1" />
diff --git a/org.fortiss.tooling.kernel.ui/res/org/fortiss/tooling/kernel/ui/introspection/KISSServices.fxml b/org.fortiss.tooling.kernel.ui/res/org/fortiss/tooling/kernel/ui/introspection/KISSServices.fxml
new file mode 100644
index 0000000000000000000000000000000000000000..715e0df084fc1ecd69ca03957abe3895ee2d45c8
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/res/org/fortiss/tooling/kernel/ui/introspection/KISSServices.fxml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.ScrollPane?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.BorderPane?>
+<?import javafx.scene.layout.VBox?>
+
+
+<AnchorPane xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
+   <children>
+      <BorderPane fx:id="borderPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+         <bottom>
+            <VBox fx:id="vBox" prefHeight="150.0" prefWidth="800.0" BorderPane.alignment="CENTER">
+               <children>
+                  <ScrollPane fitToWidth="true" hbarPolicy="NEVER" prefHeight="300.0" prefWidth="800.0">
+                     <content>
+                        <Label fx:id="label" style="-fx-padding: 5; -fx-border-style: solid inside; -fx-border-width: 2; -fx-border-insets: 5; -fx-border-radius: 5; -fx-border-color: lightblue;" text="Welcome to KISS!&#10;&#10;This is the kernel introspection system service." wrapText="true" />
+                     </content>
+                  </ScrollPane>
+               </children>
+            </VBox>
+         </bottom>
+      </BorderPane>
+   </children>
+</AnchorPane>
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/.ratings b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/.ratings
index 2a420ab20c432d9dd6afc2874cc82bd6b12bb654..a72461b88e58768fad85a1299d2067b9b9516dcf 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/.ratings
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/.ratings
@@ -1,10 +1,10 @@
 ActionService.java e29126b5947c9fd2f1d82bb87001b9d0ead50c3b GREEN
-AllocationEditPartFactoryService.java 81bd227736013f1157ba9d0f79a9f3deefe10064 GREEN
-ContextMenuService.java ca3c899293f25b70ce8e5f0d86ca2f9683329d81 GREEN
-EditPartFactoryService.java e9180c0020f1769d9e24ef3c08f9ca5599dbc5c3 GREEN
+AllocationEditPartFactoryService.java 1656319f018b4df6d18643e2eb76e012f45c2392 GREEN
+ContextMenuService.java 802b6d0ade78f91478cd8959cfb423b9963d43bf GREEN
+EditPartFactoryService.java 14c44fd426da4a26bfd4012652ea510a4b149421 GREEN
 MarkerService.java 505296c356f8d66c5c009b6d6181a971d02a9501 GREEN
-ModelEditorBindingService.java 4f502438a9fed17a3c8d03a7f11140ad1f10a0a9 GREEN
-ModelElementHandlerService.java eeb07f6926012aa98256d452d1e554a5486dc657 GREEN
+ModelEditorBindingService.java 52038a912db203fb8d63a000a59872cfa94e0eea GREEN
+ModelElementHandlerService.java 34adeef844bf98c69f1b9a7252f34d0a2b741b54 GREEN
 NavigatorService.java 1d773dde3791ddf7051616fe249558e7e307757d GREEN
 ToolingKernelUIInternal.java a70d19883dfb315d860233156d8524cf1ac2952f GREEN
 TutorialUIService.java b1d632eca91b4feb583f3930cd6ee4722dd9bfed GREEN
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/AllocationEditPartFactoryService.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/AllocationEditPartFactoryService.java
index 81bd227736013f1157ba9d0f79a9f3deefe10064..1656319f018b4df6d18643e2eb76e012f45c2392 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/AllocationEditPartFactoryService.java
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/AllocationEditPartFactoryService.java
@@ -28,7 +28,7 @@ import org.fortiss.tooling.kernel.service.IKernelIntrospectionSystemService;
 import org.fortiss.tooling.kernel.service.base.EObjectAwareServiceBase;
 import org.fortiss.tooling.kernel.ui.ToolingKernelUIActivator;
 import org.fortiss.tooling.kernel.ui.extension.IAllocationEditPartFactory;
-import org.fortiss.tooling.kernel.ui.internal.introspection.items.AllocationEditPartFactoryServiceIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.ui.introspection.items.AllocationEditPartFactoryKISSDetailsItem;
 import org.fortiss.tooling.kernel.ui.service.IAllocationEditPartFactoryService;
 import org.fortiss.tooling.kernel.utils.LoggingUtils;
 
@@ -150,6 +150,6 @@ public class AllocationEditPartFactoryService
 	/** {@inheritDoc} */
 	@Override
 	public IIntrospectionDetailsItem getDetailsItem() {
-		return new AllocationEditPartFactoryServiceIntrospectionDetailsItem(handlerMap);
+		return new AllocationEditPartFactoryKISSDetailsItem(handlerMap);
 	}
 }
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/ContextMenuService.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/ContextMenuService.java
index ca3c899293f25b70ce8e5f0d86ca2f9683329d81..802b6d0ade78f91478cd8959cfb423b9963d43bf 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/ContextMenuService.java
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/ContextMenuService.java
@@ -39,7 +39,7 @@ import org.fortiss.tooling.kernel.service.ITutorialService;
 import org.fortiss.tooling.kernel.ui.extension.IContextMenuContributor;
 import org.fortiss.tooling.kernel.ui.extension.IContextMenuMultiSelectionContributor;
 import org.fortiss.tooling.kernel.ui.extension.data.ContextMenuContextProvider;
-import org.fortiss.tooling.kernel.ui.internal.introspection.items.ContextMenuServiceIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.ui.introspection.items.ContextMenuKISSDetailsItem;
 import org.fortiss.tooling.kernel.ui.service.IActionService;
 import org.fortiss.tooling.kernel.ui.service.IContextMenuService;
 import org.fortiss.tooling.kernel.ui.service.ITutorialUIService;
@@ -278,6 +278,6 @@ public class ContextMenuService implements IContextMenuService, IIntrospectiveKe
 	/** {@inheritDoc} */
 	@Override
 	public IIntrospectionDetailsItem getDetailsItem() {
-		return new ContextMenuServiceIntrospectionDetailsItem(contextMenuContributorList);
+		return new ContextMenuKISSDetailsItem(contextMenuContributorList);
 	}
 }
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/EditPartFactoryService.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/EditPartFactoryService.java
index e9180c0020f1769d9e24ef3c08f9ca5599dbc5c3..14c44fd426da4a26bfd4012652ea510a4b149421 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/EditPartFactoryService.java
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/EditPartFactoryService.java
@@ -29,7 +29,7 @@ import org.fortiss.tooling.kernel.service.IKernelIntrospectionSystemService;
 import org.fortiss.tooling.kernel.service.base.EObjectAwareServiceBase;
 import org.fortiss.tooling.kernel.ui.ToolingKernelUIActivator;
 import org.fortiss.tooling.kernel.ui.extension.IEditPartFactory;
-import org.fortiss.tooling.kernel.ui.internal.introspection.items.EditPartFactoryServiceIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.ui.introspection.items.EditPartFactoryKISSDetailsItem;
 import org.fortiss.tooling.kernel.ui.service.IEditPartFactoryService;
 
 /**
@@ -147,6 +147,6 @@ public class EditPartFactoryService extends EObjectAwareServiceBase<IEditPartFac
 	/** {@inheritDoc} */
 	@Override
 	public IIntrospectionDetailsItem getDetailsItem() {
-		return new EditPartFactoryServiceIntrospectionDetailsItem(handlerMap);
+		return new EditPartFactoryKISSDetailsItem(handlerMap);
 	}
 }
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/ModelEditorBindingService.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/ModelEditorBindingService.java
index 4f502438a9fed17a3c8d03a7f11140ad1f10a0a9..52038a912db203fb8d63a000a59872cfa94e0eea 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/ModelEditorBindingService.java
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/ModelEditorBindingService.java
@@ -58,8 +58,8 @@ import org.fortiss.tooling.kernel.ui.extension.IModelElementHandler;
 import org.fortiss.tooling.kernel.ui.extension.ModelEditorNotAvailableBinding;
 import org.fortiss.tooling.kernel.ui.internal.editor.ExtendableMultiPageEditor;
 import org.fortiss.tooling.kernel.ui.internal.editor.ModelElementEditorInput;
-import org.fortiss.tooling.kernel.ui.internal.introspection.items.ModelEditorBindingServiceIntrospectionDetailsItem;
 import org.fortiss.tooling.kernel.ui.internal.views.library.LibraryViewPart;
+import org.fortiss.tooling.kernel.ui.introspection.items.ModelEditorBindingKISSDetailsItem;
 import org.fortiss.tooling.kernel.ui.service.IModelEditorBindingService;
 import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService;
 
@@ -404,6 +404,6 @@ public class ModelEditorBindingService extends EObjectAwareServiceBase<IModelEdi
 	/** {@inheritDoc} */
 	@Override
 	public IIntrospectionDetailsItem getDetailsItem() {
-		return new ModelEditorBindingServiceIntrospectionDetailsItem(handlerMap);
+		return new ModelEditorBindingKISSDetailsItem(handlerMap);
 	}
 }
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/ModelElementHandlerService.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/ModelElementHandlerService.java
index eeb07f6926012aa98256d452d1e554a5486dc657..34adeef844bf98c69f1b9a7252f34d0a2b741b54 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/ModelElementHandlerService.java
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/ModelElementHandlerService.java
@@ -30,7 +30,7 @@ import org.fortiss.tooling.kernel.introspection.IIntrospectiveKernelService;
 import org.fortiss.tooling.kernel.service.IKernelIntrospectionSystemService;
 import org.fortiss.tooling.kernel.service.base.EObjectAwareServiceBase;
 import org.fortiss.tooling.kernel.ui.extension.IModelElementHandler;
-import org.fortiss.tooling.kernel.ui.internal.introspection.items.ModelElementHandlerServiceIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.ui.introspection.items.ModelElementHandlerKISSDetailsItem;
 import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService;
 
 import javafx.scene.Node;
@@ -186,6 +186,6 @@ public class ModelElementHandlerService
 	/** {@inheritDoc} */
 	@Override
 	public IIntrospectionDetailsItem getDetailsItem() {
-		return new ModelElementHandlerServiceIntrospectionDetailsItem(handlerMap);
+		return new ModelElementHandlerKISSDetailsItem(handlerMap);
 	}
 }
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/.ratings b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/.ratings
deleted file mode 100644
index 0b5ef34a425cd5fe7fefe2825ad5c785c3c7d8e7..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/.ratings
+++ /dev/null
@@ -1,3 +0,0 @@
-KISSViewPart.java 0de931d1947b2fc8c95cb5b5c9ed9d9d3bc82c6e GREEN
-KISSViewerContentProvider.java b9740ee3471a70726f3f7e4dd500668301af3f61 GREEN
-KISSViewerLabelProvider.java 639495bdc8ce8c13edd464869ff625f745ed9809 GREEN
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/KISSViewPart.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/KISSViewPart.java
deleted file mode 100644
index 0de931d1947b2fc8c95cb5b5c9ed9d9d3bc82c6e..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/KISSViewPart.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2011 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection;
-
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.part.ViewPart;
-import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.introspection.IIntrospectiveKernelService;
-import org.fortiss.tooling.kernel.introspection.KernelIntrospectionSystemService;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.DetailsUIHandlerBase;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.KISSDetailsUIRegistry;
-
-/**
- * {@link ViewPart} for the marker display.
- * 
- * @author hoelzl
- */
-public class KISSViewPart extends ViewPart implements ISelectionChangedListener {
-
-	/** The greeting text. */
-	private static final String GREETING =
-			"Welcome to KISS!\n\nThis is the kernel introspection system service.";
-
-	/** GUI builder viewer instance. */
-	private KISSViewerGUI gui;
-
-	/** {@inheritDoc} */
-	@Override
-	public void createPartControl(Composite parent) {
-		parent.setLayout(new FillLayout());
-		gui = new KISSViewerGUI(parent, SWT.NONE);
-		TreeViewer tv = gui.getTreeViewer();
-		tv.setContentProvider(new KISSViewerContentProvider());
-		tv.setLabelProvider(new KISSViewerLabelProvider());
-		tv.setComparator(new ViewerComparator());
-		tv.addSelectionChangedListener(this);
-
-		gui.getDescriptionText().setText(GREETING);
-
-		// the class is used as hidden root element, which contains the instance
-		// see also content provider implementation for this setup
-		tv.setInput(KernelIntrospectionSystemService.class);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public void setFocus() {
-		gui.getTreeViewer().getControl().setFocus();
-	}
-
-	/** Refreshes the view. Needs to be called on UI thread. */
-	public void refresh() {
-		if(!gui.getTreeViewer().getControl().isDisposed()) {
-			gui.getTreeViewer().refresh();
-		}
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public void selectionChanged(SelectionChangedEvent event) {
-		if(gui.getTreeViewer().getControl().isDisposed()) {
-			return;
-		}
-		if(event.getSelection().isEmpty()) {
-			gui.getDescriptionText().setText(GREETING);
-			return;
-		}
-		if(event.getSelection() instanceof IStructuredSelection) {
-			IStructuredSelection sel = (IStructuredSelection)event.getSelection();
-			if(sel.getFirstElement() instanceof IIntrospectiveKernelService) {
-				updateWidgets((IIntrospectiveKernelService)sel.getFirstElement());
-				return;
-			}
-		}
-		// fallback
-		gui.getDescriptionText().setText(GREETING);
-	}
-
-	/** Update the KISS view widgets and controls. */
-	private void updateWidgets(IIntrospectiveKernelService service) {
-		gui.getDescriptionText().setText(service.getIntrospectionDescription());
-
-		ScrolledComposite sc = gui.getDetailsScrolledComposite();
-		if(sc.getContent() != null) {
-			Control old = sc.getContent();
-			gui.getDetailsScrolledComposite().setContent(null);
-			old.dispose();
-		}
-		IIntrospectionDetailsItem item = service.getDetailsItem();
-		if(item != null) {
-			DetailsUIHandlerBase handler =
-					KISSDetailsUIRegistry.getInstance().getHandler(item.getClass());
-			if(handler != null) {
-				handler.setService(service);
-				handler.setDataItem(item);
-				Control newContent = handler.createComposite(sc);
-				sc.setContent(newContent);
-			}
-		}
-	}
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/KISSViewerContentProvider.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/KISSViewerContentProvider.java
deleted file mode 100644
index b9740ee3471a70726f3f7e4dd500668301af3f61..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/KISSViewerContentProvider.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2013 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection;
-
-import java.util.Collection;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.fortiss.tooling.kernel.introspection.IIntrospectionItem;
-import org.fortiss.tooling.kernel.introspection.IIntrospectiveKernelService;
-import org.fortiss.tooling.kernel.introspection.KernelIntrospectionSystemService;
-import org.fortiss.tooling.kernel.service.IKernelIntrospectionSystemService;
-
-/**
- * Content provider for the {@link KISSViewPart}.
- * 
- * @author hoelzl
- */
-public class KISSViewerContentProvider implements ITreeContentProvider {
-	/** {@inheritDoc} */
-	@Override
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		// ignore
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public void dispose() {
-		// do nothing
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean hasChildren(Object element) {
-		Object[] objs = getChildren(element);
-		return objs != null && objs.length > 0;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object getParent(Object element) {
-		if(element == IKernelIntrospectionSystemService.getInstance()) {
-			return KernelIntrospectionSystemService.class;
-		}
-		if(element instanceof IIntrospectiveKernelService) {
-			return IKernelIntrospectionSystemService.getInstance();
-		}
-		return null;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object[] getElements(Object inputElement) {
-		if(inputElement == KernelIntrospectionSystemService.class) {
-			return new Object[] {IKernelIntrospectionSystemService.getInstance()};
-		}
-		return getChildren(inputElement);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object[] getChildren(Object parentElement) {
-		if(parentElement instanceof IIntrospectionItem) {
-			Collection<IIntrospectionItem> items =
-					((IIntrospectionItem)parentElement).getIntrospectionItems();
-			if(items != null) {
-				return items.stream().filter(c -> c.showInIntrospectionNavigation()).toArray();
-			}
-		}
-		return null;
-	}
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/KISSViewerGUI.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/KISSViewerGUI.java
deleted file mode 100644
index 2a2fd67ffb5f9e0c32048fc2f81dcf3824b68af4..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/KISSViewerGUI.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection;
-
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * GENERATED CODE (WindowBuilder)
- * 
- * @author hoelzl
- */
-@SuppressWarnings("javadoc")
-public class KISSViewerGUI extends Composite {
-	private TreeViewer treeViewer;
-	private ScrolledComposite detailsScrolledComposite;
-	private Composite descriptionComposite;
-	private Text descriptionText;
-
-	/**
-	 * Create the composite.
-	 * 
-	 * @param parent
-	 * @param style
-	 */
-	public KISSViewerGUI(Composite parent, int style) {
-		super(parent, style);
-		setLayout(new FillLayout(SWT.HORIZONTAL));
-
-		SashForm verticalSplitSash = new SashForm(this, SWT.VERTICAL | SWT.BORDER | SWT.SMOOTH);
-
-		SashForm horizontalSplitSash = new SashForm(verticalSplitSash, SWT.BORDER | SWT.SMOOTH);
-
-		treeViewer = new TreeViewer(horizontalSplitSash, SWT.SINGLE | SWT.BORDER);
-		treeViewer.setAutoExpandLevel(2);
-
-		detailsScrolledComposite = new ScrolledComposite(horizontalSplitSash,
-				SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
-		detailsScrolledComposite.setExpandHorizontal(true);
-		detailsScrolledComposite.setExpandVertical(true);
-		horizontalSplitSash.setWeights(new int[] {1, 5});
-
-		descriptionComposite = new Composite(verticalSplitSash, SWT.BORDER);
-		descriptionComposite.setLayout(new GridLayout());
-		verticalSplitSash.setWeights(new int[] {7, 1});
-
-		descriptionText = new Text(descriptionComposite, SWT.READ_ONLY | SWT.V_SCROLL | SWT.MULTI);
-		Color gray = Display.getCurrent().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
-		descriptionText.setBackground(gray);
-		descriptionText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-	}
-
-	public TreeViewer getTreeViewer() {
-		return treeViewer;
-	}
-
-	public ScrolledComposite getDetailsScrolledComposite() {
-		return detailsScrolledComposite;
-	}
-
-	public Composite getDescriptionComposite() {
-		return descriptionComposite;
-	}
-
-	public Text getDescriptionText() {
-		return descriptionText;
-	}
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/.ratings b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/.ratings
deleted file mode 100644
index 5be567a381cb00bbd092fd15f0bedb8d6e158f38..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/.ratings
+++ /dev/null
@@ -1,2 +0,0 @@
-DetailsUIHandlerBase.java d3d2038cee67f61ca0be7e0c832ffc95771cee0f GREEN
-KISSDetailsUIRegistry.java 4ae512082e0a7751f9da1d631b1bba44c2e5e8c4 GREEN
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/DetailsUIHandlerBase.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/DetailsUIHandlerBase.java
deleted file mode 100644
index d3d2038cee67f61ca0be7e0c832ffc95771cee0f..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/DetailsUIHandlerBase.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.details;
-
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.widgets.Control;
-import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.introspection.IIntrospectiveKernelService;
-import org.fortiss.tooling.kernel.introspection.KernelIntrospectionSystemService;
-
-/**
- * Base class for factory implementations of the details view of the
- * {@link KernelIntrospectionSystemService} GUI.
- * 
- * @author hoelzl
- */
-public abstract class DetailsUIHandlerBase {
-
-	/** The {@link IIntrospectionDetailsItem data item}. */
-	protected IIntrospectiveKernelService service;
-	/** The {@link IIntrospectionDetailsItem data item}. */
-	protected IIntrospectionDetailsItem dataItem;
-
-	/** Sets the data item. */
-	public final void setDataItem(IIntrospectionDetailsItem dataItem) {
-		this.dataItem = dataItem;
-	}
-
-	/** Sets the service. */
-	public final void setService(IIntrospectiveKernelService service) {
-		this.service = service;
-	}
-
-	/** Creates the control within the given parent scrolled composite. */
-	public abstract Control createComposite(ScrolledComposite parent);
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/KISSDetailsUIRegistry.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/KISSDetailsUIRegistry.java
deleted file mode 100644
index 4ae512082e0a7751f9da1d631b1bba44c2e5e8c4..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/KISSDetailsUIRegistry.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.details;
-
-import java.util.HashMap;
-
-import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.introspection.IIntrospectionItem;
-import org.fortiss.tooling.kernel.introspection.items.ConnectionCompositorServiceIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.introspection.items.ConstraintCheckerServiceIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.introspection.items.EclipseResourceStorageServiceIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.introspection.items.ElementCompositorServiceIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.introspection.items.LibraryServiceIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.introspection.items.MigrationServiceIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.introspection.items.PersistencyServiceIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.introspection.items.PrototypeServiceIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.introspection.items.TransformationServiceIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.handler.AllocationEditPartFactoryServiceIntrospectionDetailsUIHandler;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.handler.ConnectionCompositorServiceIntrospectionDetailsUIHandler;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.handler.ConstraintCheckerServiceIntrospectionDetailsUIHandler;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.handler.ContextMenuServiceIntrospectionDetailsUIHandler;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.handler.EclipseResourceStorageProviderIntrospectionDetailsUIHandler;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.handler.EditPartFactoryServiceIntrospectionDetailsUIHandler;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.handler.ElementCompositorServiceIntrospectionDetailsUIHandler;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.handler.LibraryServiceIntrospectionDetailsUIHandler;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.handler.MigrationServiceIntrospectionDetailsUIHandler;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.handler.ModelEditorBindingServiceIntrospectionDetailsUIHandler;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.handler.ModelElementHandlerServiceIntrospectionDetailsUIHandler;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.handler.PersistencyServiceIntrospectionDetailsUIHandler;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.handler.PrototypeServiceIntrospectionDetailsUIHandler;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.handler.TransformationServiceIntrospectionDetailsUIHandler;
-import org.fortiss.tooling.kernel.ui.internal.introspection.items.AllocationEditPartFactoryServiceIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.ui.internal.introspection.items.ContextMenuServiceIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.ui.internal.introspection.items.EditPartFactoryServiceIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.ui.internal.introspection.items.ModelEditorBindingServiceIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.ui.internal.introspection.items.ModelElementHandlerServiceIntrospectionDetailsItem;
-
-/**
- * Registry class to provide the details GUI for a given {@link IIntrospectionItem}.
- * 
- * @author hoelzl
- */
-public final class KISSDetailsUIRegistry {
-	/** Returns the singleton instance of the service. */
-	private static final KISSDetailsUIRegistry INSTANCE = new KISSDetailsUIRegistry();
-
-	/** Returns the singleton instance. */
-	public static KISSDetailsUIRegistry getInstance() {
-		return INSTANCE;
-	}
-
-	/** The registry. */
-	private final HashMap<Class<? extends IIntrospectionDetailsItem>, DetailsUIHandlerBase> registry =
-			new HashMap<Class<? extends IIntrospectionDetailsItem>, DetailsUIHandlerBase>();
-
-	/** Constructor. */
-	public KISSDetailsUIRegistry() {
-		registerHandler(AllocationEditPartFactoryServiceIntrospectionDetailsItem.class,
-				new AllocationEditPartFactoryServiceIntrospectionDetailsUIHandler());
-		registerHandler(ConnectionCompositorServiceIntrospectionDetailsItem.class,
-				new ConnectionCompositorServiceIntrospectionDetailsUIHandler());
-		registerHandler(ConstraintCheckerServiceIntrospectionDetailsItem.class,
-				new ConstraintCheckerServiceIntrospectionDetailsUIHandler());
-		registerHandler(ContextMenuServiceIntrospectionDetailsItem.class,
-				new ContextMenuServiceIntrospectionDetailsUIHandler());
-		registerHandler(EclipseResourceStorageServiceIntrospectionDetailsItem.class,
-				new EclipseResourceStorageProviderIntrospectionDetailsUIHandler());
-		registerHandler(EditPartFactoryServiceIntrospectionDetailsItem.class,
-				new EditPartFactoryServiceIntrospectionDetailsUIHandler());
-		registerHandler(ElementCompositorServiceIntrospectionDetailsItem.class,
-				new ElementCompositorServiceIntrospectionDetailsUIHandler());
-		registerHandler(LibraryServiceIntrospectionDetailsItem.class,
-				new LibraryServiceIntrospectionDetailsUIHandler());
-		registerHandler(MigrationServiceIntrospectionDetailsItem.class,
-				new MigrationServiceIntrospectionDetailsUIHandler());
-		registerHandler(ModelEditorBindingServiceIntrospectionDetailsItem.class,
-				new ModelEditorBindingServiceIntrospectionDetailsUIHandler());
-		registerHandler(ModelElementHandlerServiceIntrospectionDetailsItem.class,
-				new ModelElementHandlerServiceIntrospectionDetailsUIHandler());
-		registerHandler(PrototypeServiceIntrospectionDetailsItem.class,
-				new PrototypeServiceIntrospectionDetailsUIHandler());
-		registerHandler(PersistencyServiceIntrospectionDetailsItem.class,
-				new PersistencyServiceIntrospectionDetailsUIHandler());
-		registerHandler(TransformationServiceIntrospectionDetailsItem.class,
-				new TransformationServiceIntrospectionDetailsUIHandler());
-	}
-
-	/** Registers the given composite */
-	public void registerHandler(Class<? extends IIntrospectionDetailsItem> clazz,
-			DetailsUIHandlerBase detailsHandler) {
-		registry.put(clazz, detailsHandler);
-	}
-
-	/** Returns the composite factory for the given class. */
-	public DetailsUIHandlerBase getHandler(Class<? extends IIntrospectionDetailsItem> clazz) {
-		return registry.get(clazz);
-	}
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/.ratings b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/.ratings
deleted file mode 100644
index 7603b3de5398117aa2b0d0afd8b299f9f63c8c9c..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/.ratings
+++ /dev/null
@@ -1,19 +0,0 @@
-AllocationEditPartFactoryServiceIntrospectionDetailsUIHandler.java 944cc4d5db305ceba7ca1f1f1957a5160511a228 GREEN
-ConnectionCompositorServiceIntrospectionDetailsUIHandler.java bf4744afe94f1b97c2f8442466c10d4969b81854 GREEN
-ConstraintCheckerServiceIntrospectionDetailsUIHandler.java 33758640bc77148162b88143dd1ed758a12bcf30 GREEN
-ContextMenuServiceIntrospectionDetailsUIHandler.java 33f39e000e14a9c2661ca280e82139593852be7c GREEN
-CopyClassNameToClipBoardRunnable.java 884555c7026c466d3401b272fc64b9f693074950 GREEN
-EObjectAware2IntrospectionDetailsUIHandlerBase.java 18aefde758dc370f564a535d71bab9afc8bdf91f GREEN
-EObjectAwareIntrospectionDetailsUIHandlerBase.java dc14e1cdcb550aaada7d35396de60cb6515d04ce GREEN
-EclipseResourceStorageProviderIntrospectionDetailsUIHandler.java 987f882a82cfa20af08e85629e2767c0ebab042f GREEN
-EditPartFactoryServiceIntrospectionDetailsUIHandler.java e14b000ffface065dd58f7a9799cceb74acd095e GREEN
-ElementCompositorServiceIntrospectionDetailsUIHandler.java 3e5d8e4c268a4498c0b17d2ab83bf17665b37cd0 GREEN
-IntrospectionDetailsUIHandlerBase.java fae98d41eaf47401b27e80da542e187d952fb287 GREEN
-LibraryServiceIntrospectionDetailsUIHandler.java a17e31bfdb1215b9d50279a37165fac6db0733ea GREEN
-MigrationServiceIntrospectionDetailsUIHandler.java 66c7b9094dbf373e56c5a5558bb35073e70d4ec3 GREEN
-ModelEditorBindingServiceIntrospectionDetailsUIHandler.java e8c55cd97cba5b4286c9681649970e348e248bf2 GREEN
-ModelElementHandlerServiceIntrospectionDetailsUIHandler.java c4f7b3ddb66b2bfa14e0dd64516d613fa54d6df0 GREEN
-PersistencyServiceIntrospectionDetailsUIHandler.java 8019c9fa146eb5831be048edc94c8d284cc90595 GREEN
-PrototypeServiceIntrospectionDetailsUIHandler.java b61fffe1291bec05fc0f727834be9ab0f1a7acba GREEN
-TableViewerPatternFilter.java 7a7cb1f25d12b5c89c91a3e29169412de8cbb867 GREEN
-TransformationServiceIntrospectionDetailsUIHandler.java 8e8d54dbc2ad0b765467a25b1fc1fdbc8c388a20 GREEN
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/ConnectionCompositorServiceIntrospectionDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/ConnectionCompositorServiceIntrospectionDetailsUIHandler.java
deleted file mode 100644
index bf4744afe94f1b97c2f8442466c10d4969b81854..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/ConnectionCompositorServiceIntrospectionDetailsUIHandler.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.details.handler;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Tree;
-import org.fortiss.tooling.kernel.introspection.items.ConnectionCompositorServiceIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.introspection.items.EObjectAware2IntrospectionDetailsItemBase;
-import org.fortiss.tooling.kernel.service.IConnectionCompositorService;
-
-/**
- * Introspection UI handler for the {@link IConnectionCompositorService}.
- * 
- * @author hoelzl
- */
-public final class ConnectionCompositorServiceIntrospectionDetailsUIHandler
-		extends EObjectAware2IntrospectionDetailsUIHandlerBase {
-
-	/** {@inheritDoc} */
-	@Override
-	public Control createComposite(ScrolledComposite parent) {
-		String heading = "Type to search registered connection compositors:";
-		String footer = "Number of currently registered connection compositors: " +
-				getInputObject().countHandlers();
-		return createFilteredTreeInTabFolder(parent, heading, footer, "Registered Compositors");
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected void createTreeColumns(Tree tree) {
-		createDefaultTreeColumns(tree, "Source / Target / Compositor", 250, "Compositor Class", 400,
-				"Source EObject Class", 400, "Target EObject Class", 400);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ITreeContentProvider createContentProvider() {
-		return new EObjectAware2TreeContentProviderBase() {
-			@Override
-			protected EObjectAware2IntrospectionDetailsItemBase<?> getInputObject() {
-				return ConnectionCompositorServiceIntrospectionDetailsUIHandler.this
-						.getInputObject();
-			}
-		};
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ConnectionCompositorServiceIntrospectionDetailsItem getInputObject() {
-		return (ConnectionCompositorServiceIntrospectionDetailsItem)dataItem;
-	}
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/ConstraintCheckerServiceIntrospectionDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/ConstraintCheckerServiceIntrospectionDetailsUIHandler.java
deleted file mode 100644
index 33758640bc77148162b88143dd1ed758a12bcf30..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/ConstraintCheckerServiceIntrospectionDetailsUIHandler.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.details.handler;
-
-import org.conqat.ide.commons.ui.jface.TreeContentProviderBase;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TableLabelProviderBase;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.ui.dialogs.PatternFilter;
-import org.fortiss.tooling.kernel.extension.IConstraintChecker;
-import org.fortiss.tooling.kernel.introspection.IIntrospectionItem;
-import org.fortiss.tooling.kernel.introspection.items.ConstraintCheckerServiceIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.service.IConstraintCheckerService;
-
-/**
- * Introspection UI handler for {@link IIntrospectionItem}s provided by
- * {@link IConstraintCheckerService}.
- * 
- * @author hoelzl
- */
-public final class ConstraintCheckerServiceIntrospectionDetailsUIHandler
-		extends IntrospectionDetailsUIHandlerBase {
-
-	/** {@inheritDoc} */
-	@Override
-	public Control createComposite(ScrolledComposite parent) {
-		String h = "Type to search registered checkers:";
-		String f = "Number of registered constraint checkers: " + countCheckers();
-		return createFilteredTreeInTabFolder(parent, h, f, "Registered Checkers");
-	}
-
-	/** Computes the number of constraint checkers. */
-	private int countCheckers() {
-		int count = 0;
-		for(Class<?> c : getInputObject().getHandlerKeyClasses()) {
-			count += getInputObject().getHandlerList(c).size();
-		}
-		return count;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected void createTreeColumns(Tree tree) {
-		TreeColumn col0 = new TreeColumn(tree, SWT.LEFT);
-		col0.setText("Model Element / Checker");
-		col0.setWidth(400);
-
-		TreeColumn col1 = new TreeColumn(tree, SWT.LEFT);
-		col1.setText("Model Element Class");
-		col1.setWidth(400);
-
-		TreeColumn col2 = new TreeColumn(tree, SWT.LEFT);
-		col2.setText("Constraint Checker Implementation Class");
-		col2.setWidth(400);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ITreeContentProvider createContentProvider() {
-		return new TreeContentProviderBase() {
-
-			@Override
-			public Object[] getChildren(Object parentElement) {
-				if(parentElement == getInputObject()) {
-					return getInputObject().getHandlerKeyClasses().toArray();
-				} else if(parentElement instanceof Class) {
-					return getInputObject().getHandlerList((Class<?>)parentElement).toArray();
-				}
-				return null;
-			}
-		};
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ITableLabelProvider createLabelProvider() {
-		return new TableLabelProviderBase() {
-
-			@SuppressWarnings("unchecked")
-			@Override
-			public String getColumnText(Object element, int columnIndex) {
-				if(element instanceof Class) {
-					switch(columnIndex) {
-						case 0:
-							return ((Class<?>)element).getSimpleName();
-						case 1:
-							return ((Class<?>)element).getName();
-					}
-				} else if(element instanceof IConstraintChecker) {
-					IConstraintChecker<EObject> icc = (IConstraintChecker<EObject>)element;
-					switch(columnIndex) {
-						case 0:
-							return icc.getClass().getSimpleName();
-						case 2:
-							return icc.getClass().getName();
-					}
-				}
-				return "";
-			}
-		};
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected PatternFilter createPatternFilter() {
-		return new TableViewerPatternFilter();
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ConstraintCheckerServiceIntrospectionDetailsItem getInputObject() {
-		return (ConstraintCheckerServiceIntrospectionDetailsItem)dataItem;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected boolean testSelection(Object selection) {
-		return true;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected void populateContextMenu(Object selection, MenuManager mgr) {
-		if(selection instanceof Class<?>) {
-			mgr.add(createCopyClassNameAction((Class<?>)selection));
-		} else if(selection instanceof IConstraintChecker<?>) {
-			mgr.add(createCopyClassNameAction(selection.getClass()));
-		}
-	}
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/ContextMenuServiceIntrospectionDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/ContextMenuServiceIntrospectionDetailsUIHandler.java
deleted file mode 100644
index 33f39e000e14a9c2661ca280e82139593852be7c..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/ContextMenuServiceIntrospectionDetailsUIHandler.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.details.handler;
-
-import org.conqat.ide.commons.ui.jface.TreeContentProviderBase;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TableLabelProviderBase;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.ui.dialogs.PatternFilter;
-import org.fortiss.tooling.kernel.introspection.IIntrospectionItem;
-import org.fortiss.tooling.kernel.service.IConstraintCheckerService;
-import org.fortiss.tooling.kernel.ui.extension.IContextMenuContributor;
-import org.fortiss.tooling.kernel.ui.internal.introspection.items.ContextMenuServiceIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.ui.service.IContextMenuService;
-
-/**
- * Introspection UI handler for {@link IIntrospectionItem}s provided by
- * {@link IConstraintCheckerService}.
- * 
- * @author hoelzl
- */
-public final class ContextMenuServiceIntrospectionDetailsUIHandler
-		extends IntrospectionDetailsUIHandlerBase {
-
-	/** {@inheritDoc} */
-	@Override
-	public Control createComposite(ScrolledComposite parent) {
-		String h = "Type to search registered menu contributors:";
-		String f = "Number of registered menu contributors: " + getInputObject().getHandlerList();
-		return createFilteredTreeInTabFolder(parent, h, f, "Registered Contributors");
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected void createTreeColumns(Tree tree) {
-		TreeColumn col0 = new TreeColumn(tree, SWT.LEFT);
-		col0.setText("Menu Section");
-		col0.setWidth(400);
-
-		TreeColumn col1 = new TreeColumn(tree, SWT.LEFT);
-		col1.setText("Menu Provider Class");
-		col1.setWidth(500);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ITreeContentProvider createContentProvider() {
-		return new TreeContentProviderBase() {
-
-			@Override
-			public Object[] getChildren(Object parentElement) {
-				if(parentElement == getInputObject()) {
-					return IContextMenuService.MENU_SECTION_IDS;
-				} else if(parentElement instanceof String) {
-					return getInputObject().getHandlerList().stream()
-							.filter(h -> parentElement.equals(h.getMenuSectionID())).toArray();
-				}
-				return null;
-			}
-		};
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ITableLabelProvider createLabelProvider() {
-		return new TableLabelProviderBase() {
-			@Override
-			public String getColumnText(Object element, int columnIndex) {
-				if(element instanceof String && columnIndex == 0) {
-					return (String)element;
-				} else if(element instanceof IContextMenuContributor) {
-					IContextMenuContributor icc = (IContextMenuContributor)element;
-					switch(columnIndex) {
-						case 0:
-							return icc.getClass().getSimpleName();
-						case 1:
-							return icc.getClass().getName();
-					}
-				}
-				return "";
-			}
-		};
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected boolean testSelection(Object selection) {
-		return selection instanceof IContextMenuContributor;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected void populateContextMenu(Object selection, MenuManager mgr) {
-		IContextMenuContributor c = (IContextMenuContributor)selection;
-		mgr.add(createCopyClassNameAction(c.getClass()));
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected PatternFilter createPatternFilter() {
-		return new TableViewerPatternFilter();
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ViewerComparator createComparator() {
-		return new ViewerComparator() {
-			/** {@inheritDoc} */
-			@Override
-			public int category(Object element) {
-				if(element instanceof String) {
-					String section = (String)element;
-					for(int i = 0; i < IContextMenuService.MENU_SECTION_IDS.length; i++) {
-						if(section.equals(IContextMenuService.MENU_SECTION_IDS[i])) {
-							return i;
-						}
-					}
-					return IContextMenuService.MENU_SECTION_IDS.length;
-				}
-				return super.category(element);
-			}
-		};
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ContextMenuServiceIntrospectionDetailsItem getInputObject() {
-		return (ContextMenuServiceIntrospectionDetailsItem)dataItem;
-	}
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/CopyClassNameToClipBoardRunnable.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/CopyClassNameToClipBoardRunnable.java
deleted file mode 100644
index 884555c7026c466d3401b272fc64b9f693074950..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/CopyClassNameToClipBoardRunnable.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.details.handler;
-
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * {@link Runnable} implementation that copies a given class name to the {@link Clipboard}.
- * 
- * @author hoelzl
- */
-public final class CopyClassNameToClipBoardRunnable implements Runnable {
-
-	/** The class name. */
-	private final String className;
-
-	/** Constructor. */
-	public CopyClassNameToClipBoardRunnable(String className) {
-		this.className = className;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public void run() {
-		Clipboard clipboard = new Clipboard(Display.getCurrent());
-		String[] content = new String[] {className};
-		Transfer[] transfer = new Transfer[] {TextTransfer.getInstance()};
-		clipboard.setContents(content, transfer);
-	}
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/EObjectAware2IntrospectionDetailsUIHandlerBase.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/EObjectAware2IntrospectionDetailsUIHandlerBase.java
deleted file mode 100644
index 18aefde758dc370f564a535d71bab9afc8bdf91f..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/EObjectAware2IntrospectionDetailsUIHandlerBase.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.details.handler;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.conqat.ide.commons.ui.jface.TreeContentProviderBase;
-import org.conqat.lib.commons.collections.Pair;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.TableLabelProviderBase;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.ui.dialogs.PatternFilter;
-import org.fortiss.tooling.kernel.introspection.items.EObjectAware2IntrospectionDetailsItemBase;
-
-/**
- * Base class for details UI implementations with filtered tree viewer.
- * 
- * @author hoelzl
- */
-public abstract class EObjectAware2IntrospectionDetailsUIHandlerBase
-		extends IntrospectionDetailsUIHandlerBase {
-
-	/** Creates the default tree columns. */
-	protected final void createDefaultTreeColumns(Tree tree, String text0, int width0, String text1,
-			int width1, String text2, int width2, String text3, int width3) {
-		TreeColumn col0 = new TreeColumn(tree, SWT.LEFT);
-		col0.setText(text0);
-		col0.setWidth(width0);
-
-		TreeColumn col1 = new TreeColumn(tree, SWT.LEFT);
-		col1.setText(text1);
-		col1.setWidth(width1);
-
-		TreeColumn col2 = new TreeColumn(tree, SWT.LEFT);
-		col2.setText(text2);
-		col2.setWidth(width2);
-
-		TreeColumn col3 = new TreeColumn(tree, SWT.LEFT);
-		col3.setText(text3);
-		col3.setWidth(width3);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ITableLabelProvider createLabelProvider() {
-		return new EObjectAware2TableLabelProvider();
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected PatternFilter createPatternFilter() {
-		PatternFilter pf = new TableViewerPatternFilter();
-		pf.setIncludeLeadingWildcard(true);
-		return pf;
-	}
-
-	/** Table label provider for handler registrations with two classes. */
-	protected static class EObjectAware2TableLabelProvider extends TableLabelProviderBase {
-		/** {@inheritDoc} */
-		@Override
-		public String getColumnText(Object element, int columnIndex) {
-			if(element instanceof Class) {
-				return columnIndex == 0 ? ((Class<?>)element).getSimpleName() : "";
-			}
-			if(element instanceof Pair) {
-				Pair<?, ?> pair = (Pair<?, ?>)element;
-				if(pair.getFirst() instanceof Class) {
-					Class<?> c = (Class<?>)((Pair<?, ?>)element).getSecond();
-					return columnIndex == 0 ? c.getSimpleName() : "";
-				}
-				if(pair.getFirst() != null) {
-					Object provider = pair.getFirst();
-					Pair<?, ?> regClasses = (Pair<?, ?>)pair.getSecond();
-					Class<?> sourceClass = (Class<?>)regClasses.getFirst();
-					Class<?> targetClass = (Class<?>)regClasses.getSecond();
-					switch(columnIndex) {
-						case 0:
-							return provider.getClass().getSimpleName();
-						case 1:
-							return provider.getClass().getName();
-						case 2:
-							return sourceClass.getName();
-						case 3:
-							return targetClass.getName();
-					}
-				}
-			}
-			return "";
-		}
-	}
-
-	/** Tree content provider for handler registrations with two classes. */
-	protected static abstract class EObjectAware2TreeContentProviderBase
-			extends TreeContentProviderBase {
-
-		/** Returns the input object for this content provider. */
-		protected abstract EObjectAware2IntrospectionDetailsItemBase<?> getInputObject();
-
-		/** {@inheritDoc} */
-		@Override
-		public Object[] getChildren(Object parentElement) {
-			if(parentElement == getInputObject()) {
-				return getInputObject().getFirstHandlerKeyClasses().toArray();
-			}
-			if(parentElement instanceof Class<?>) {
-				Class<?> firstClass = (Class<?>)parentElement;
-				Collection<Class<?>> secondaryClasses =
-						getInputObject().getSecondHandlerKeyClasses(firstClass);
-				if(secondaryClasses == null || secondaryClasses.isEmpty()) {
-					return new Object[0];
-				}
-				Pair<?, ?>[] pairs = new Pair<?, ?>[secondaryClasses.size()];
-				int idx = 0;
-				for(Class<?> secondary : secondaryClasses) {
-					pairs[idx] = new Pair<Class<?>, Class<?>>(firstClass, secondary);
-					idx++;
-				}
-				return pairs;
-			}
-			if(parentElement instanceof Pair) {
-				Pair<?, ?> pair = (Pair<?, ?>)parentElement;
-				if(pair.getFirst() instanceof Class) {
-					Class<?> first = (Class<?>)pair.getFirst();
-					Class<?> second = (Class<?>)pair.getSecond();
-					List<?> handlerList = getInputObject().getHandlerList(first, second);
-					if(handlerList == null || handlerList.isEmpty()) {
-						return new Object[0];
-					}
-					Pair<?, ?>[] pairs = new Pair<?, ?>[handlerList.size()];
-					int idx = 0;
-					for(Object handler : handlerList) {
-						pairs[idx] = new Pair<Object, Pair<?, ?>>(handler, pair);
-						idx++;
-					}
-					return pairs;
-				}
-				// no children for handlers
-			}
-			return new Object[0];
-		}
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected boolean testSelection(Object selection) {
-		if(selection instanceof Pair<?, ?>) {
-			Pair<?, ?> pair = (Pair<?, ?>)selection;
-			return !(pair.getFirst() instanceof Class<?>);
-		}
-		return false;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected void populateContextMenu(Object selection, MenuManager mgr) {
-		Pair<?, ?> pair = (Pair<?, ?>)selection;
-		mgr.add(createCopyClassNameAction(pair.getFirst().getClass()));
-		Pair<?, ?> classPair = (Pair<?, ?>)pair.getSecond();
-		mgr.add(createCopyClassNameAction((Class<?>)classPair.getFirst()));
-		mgr.add(createCopyClassNameAction((Class<?>)classPair.getSecond()));
-	}
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/EObjectAwareIntrospectionDetailsUIHandlerBase.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/EObjectAwareIntrospectionDetailsUIHandlerBase.java
deleted file mode 100644
index dc14e1cdcb550aaada7d35396de60cb6515d04ce..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/EObjectAwareIntrospectionDetailsUIHandlerBase.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.details.handler;
-
-import java.util.List;
-
-import org.conqat.ide.commons.ui.jface.TreeContentProviderBase;
-import org.conqat.lib.commons.collections.Pair;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.TableLabelProviderBase;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.ui.dialogs.PatternFilter;
-import org.fortiss.tooling.kernel.introspection.items.EObjectAwareIntrospectionDetailsItemBase;
-
-/**
- * Base class for details UI implementations with filtered tree viewer.
- * 
- * @author hoelzl
- */
-public abstract class EObjectAwareIntrospectionDetailsUIHandlerBase
-		extends IntrospectionDetailsUIHandlerBase {
-
-	/** Creates the default tree columns. */
-	protected final void createDefaultTreeColumns(Tree tree, String text0, int width0, String text1,
-			int width1, String text2, int width2) {
-		TreeColumn col0 = new TreeColumn(tree, SWT.LEFT);
-		col0.setText(text0);
-		col0.setWidth(width0);
-
-		TreeColumn col1 = new TreeColumn(tree, SWT.LEFT);
-		col1.setText(text1);
-		col1.setWidth(width1);
-
-		TreeColumn col2 = new TreeColumn(tree, SWT.LEFT);
-		col2.setText(text2);
-		col2.setWidth(width2);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ITableLabelProvider createLabelProvider() {
-		return new EObjectAwareTableLabelProvider();
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected PatternFilter createPatternFilter() {
-		PatternFilter pf = new TableViewerPatternFilter();
-		pf.setIncludeLeadingWildcard(true);
-		return pf;
-	}
-
-	/** Table label provider for handler registrations with two classes. */
-	protected static class EObjectAwareTableLabelProvider extends TableLabelProviderBase {
-		/** {@inheritDoc} */
-		@Override
-		public String getColumnText(Object element, int columnIndex) {
-			if(element instanceof Class) {
-				return columnIndex == 0 ? ((Class<?>)element).getSimpleName() : "";
-			}
-			if(element instanceof Pair) {
-				Pair<?, ?> pair = (Pair<?, ?>)element;
-				if(pair.getFirst() != null) {
-					Object provider = pair.getFirst();
-					Class<?> regClass = (Class<?>)pair.getSecond();
-					switch(columnIndex) {
-						case 0:
-							return provider.getClass().getSimpleName();
-						case 1:
-							return provider.getClass().getName();
-						case 2:
-							return regClass.getName();
-					}
-				}
-			}
-			return "";
-		}
-	}
-
-	/** Tree content provider for handler registrations with two classes. */
-	protected static abstract class EObjectAwareTreeContentProviderBase
-			extends TreeContentProviderBase {
-
-		/** Returns the input object for this content provider. */
-		protected abstract EObjectAwareIntrospectionDetailsItemBase<?> getInputObject();
-
-		/** {@inheritDoc} */
-		@Override
-		public Object[] getChildren(Object parentElement) {
-			if(parentElement == getInputObject()) {
-				return getInputObject().getHandlerKeyClasses().toArray();
-			}
-			if(parentElement instanceof Class<?>) {
-				Class<?> regClass = (Class<?>)parentElement;
-				List<?> handlerList = getInputObject().getHandlerList(regClass);
-				if(handlerList == null || handlerList.isEmpty()) {
-					return new Object[0];
-				}
-				Pair<?, ?>[] pairs = new Pair<?, ?>[handlerList.size()];
-				int idx = 0;
-				for(Object handler : handlerList) {
-					pairs[idx] = new Pair<Object, Class<?>>(handler, regClass);
-					idx++;
-				}
-				return pairs;
-			}
-			return new Object[0];
-		}
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected boolean testSelection(Object selection) {
-		return selection instanceof Pair<?, ?>;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected void populateContextMenu(Object selection, MenuManager mgr) {
-		Pair<?, ?> pair = (Pair<?, ?>)selection;
-		mgr.add(createCopyClassNameAction(pair.getFirst().getClass()));
-		mgr.add(createCopyClassNameAction((Class<?>)pair.getSecond()));
-	}
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/ElementCompositorServiceIntrospectionDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/ElementCompositorServiceIntrospectionDetailsUIHandler.java
deleted file mode 100644
index 3e5d8e4c268a4498c0b17d2ab83bf17665b37cd0..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/ElementCompositorServiceIntrospectionDetailsUIHandler.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.details.handler;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Tree;
-import org.fortiss.tooling.kernel.introspection.items.EObjectAwareIntrospectionDetailsItemBase;
-import org.fortiss.tooling.kernel.introspection.items.ElementCompositorServiceIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.service.IElementCompositorService;
-
-/**
- * Introspection UI handler for the {@link IElementCompositorService}.
- * 
- * @author hoelzl
- */
-public final class ElementCompositorServiceIntrospectionDetailsUIHandler
-		extends EObjectAwareIntrospectionDetailsUIHandlerBase {
-
-	/** {@inheritDoc} */
-	@Override
-	public Control createComposite(ScrolledComposite parent) {
-		String heading = "Type to search registered element compositors:";
-		String footer = "Number of currently registered element compositors: " +
-				getInputObject().countHandlers();
-		return createFilteredTreeInTabFolder(parent, heading, footer, "Registered Compositors");
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected void createTreeColumns(Tree tree) {
-		createDefaultTreeColumns(tree, "Class / Compositor", 250, "Compositor Class", 400,
-				"EObject Class", 400);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ITreeContentProvider createContentProvider() {
-		return new EObjectAwareTreeContentProviderBase() {
-			@Override
-			protected EObjectAwareIntrospectionDetailsItemBase<?> getInputObject() {
-				return ElementCompositorServiceIntrospectionDetailsUIHandler.this.getInputObject();
-			}
-		};
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ElementCompositorServiceIntrospectionDetailsItem getInputObject() {
-		return (ElementCompositorServiceIntrospectionDetailsItem)dataItem;
-	}
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/IntrospectionDetailsUIHandlerBase.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/IntrospectionDetailsUIHandlerBase.java
deleted file mode 100644
index fae98d41eaf47401b27e80da542e187d952fb287..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/IntrospectionDetailsUIHandlerBase.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.details.handler;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.dialogs.FilteredTree;
-import org.eclipse.ui.dialogs.PatternFilter;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.DetailsUIHandlerBase;
-
-/**
- * Base class for details UI implementations with filtered tree viewer.
- * 
- * @author hoelzl
- */
-public abstract class IntrospectionDetailsUIHandlerBase extends DetailsUIHandlerBase {
-
-	/** Creates only the filtered tree control. */
-	protected final Composite createFilteredTree(Composite parent) {
-		return createFilteredTree(parent, null, null);
-	}
-
-	/** Creates the filtered tree control. */
-	protected final Composite createFilteredTree(Composite parent, String headingsLabel,
-			String footerLabel) {
-		Composite composite = new Composite(parent, SWT.BORDER);
-		composite.setLayout(new GridLayout(1, true));
-
-		if(headingsLabel != null) {
-			Label heading = new Label(composite, SWT.NONE);
-			heading.setText(headingsLabel);
-			heading.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, true, false));
-		}
-
-		FilteredTree filteredTree =
-				new FilteredTree(composite, SWT.BORDER, createPatternFilter(), true);
-
-		TreeViewer treeViewer = filteredTree.getViewer();
-		Tree tree = treeViewer.getTree();
-		tree.setHeaderVisible(true);
-		tree.setLinesVisible(true);
-
-		createTreeColumns(tree);
-
-		treeViewer.setContentProvider(createContentProvider());
-		treeViewer.setLabelProvider(createLabelProvider());
-		treeViewer.setComparator(createComparator());
-		treeViewer.setInput(getInputObject());
-
-		addContextMenu(treeViewer);
-
-		if(footerLabel != null) {
-			Label lbl = new Label(composite, SWT.BOLD);
-			lbl.setText(footerLabel);
-			lbl.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, true, false));
-		}
-
-		return composite;
-	}
-
-	/**
-	 * Creates the context menu by delegating menu entry creation
-	 * to {@link #populateContextMenu(Object, MenuManager)} and {@link #testSelection(Object)}.
-	 */
-	private void addContextMenu(final TreeViewer treeViewer) {
-		final MenuManager mgr = new MenuManager();
-		mgr.setRemoveAllWhenShown(true);
-		mgr.addMenuListener(new IMenuListener() {
-
-			@Override
-			public void menuAboutToShow(IMenuManager manager) {
-				IStructuredSelection sel = (IStructuredSelection)treeViewer.getSelection();
-				if(sel != null && !sel.isEmpty() && testSelection(sel.getFirstElement())) {
-					populateContextMenu(sel.getFirstElement(), mgr);
-				}
-			}
-		});
-		treeViewer.getControl().setMenu(mgr.createContextMenu(treeViewer.getControl()));
-	}
-
-	/**
-	 * Populates the context menu. May assume {@link #testSelection(Object)} returned {@code true}.
-	 * The default does not create any menu entry.
-	 */
-	protected void populateContextMenu(@SuppressWarnings("unused") Object selection,
-			@SuppressWarnings("unused") MenuManager mgr) {
-		// create nothing
-	}
-
-	/** Creates an action with the given name and selection handler. */
-	protected final Action createAction(String name, Runnable runner) {
-		return new Action(name) {
-			/** {@inheritDoc} */
-			@Override
-			public void run() {
-				runner.run();
-			}
-		};
-	}
-
-	/** Creates the copy class name action for the given class. */
-	protected final Action createCopyClassNameAction(Class<?> clazz) {
-		return createAction("Copy Qualified Class Name: " + clazz.getSimpleName(),
-				new CopyClassNameToClipBoardRunnable(clazz.getName()));
-	}
-
-	/**
-	 * Tests the given selected object for validity to show context menu. The default returns
-	 * {@code false}.
-	 */
-	protected boolean testSelection(@SuppressWarnings("unused") Object selection) {
-		return false;
-	}
-
-	/** Creates a tab folder with the filtered tree as a tab. */
-	protected final CTabFolder createTabFolder(Composite parent, String... tabNames) {
-		CTabFolder tabFolder = new CTabFolder(parent, SWT.BOTTOM);
-		if(tabNames != null && tabNames.length > 0) {
-			for(String tName : tabNames) {
-				CTabItem filterTreeTab = new CTabItem(tabFolder, SWT.NULL);
-				filterTreeTab.setText(tName);
-			}
-			tabFolder.setSelection(tabFolder.getItem(0));
-		}
-		return tabFolder;
-	}
-
-	/** Creates the filtered tree inside the tab folder. */
-	protected final CTabFolder createFilteredTreeInTabFolder(Composite parent, String headingsLabel,
-			String footerLabel, String... tabNames) {
-		CTabFolder tabFolder = createTabFolder(parent, tabNames);
-		Composite c = createFilteredTree(tabFolder, headingsLabel, footerLabel);
-		tabFolder.getItem(0).setControl(c);
-		return tabFolder;
-	}
-
-	/** Create the columns of the tree. */
-	protected abstract void createTreeColumns(Tree tree);
-
-	/** Creates the content provider. */
-	protected abstract ITreeContentProvider createContentProvider();
-
-	/** Creates the label provider. */
-	protected abstract ITableLabelProvider createLabelProvider();
-
-	/** Creates the pattern filter. */
-	protected abstract PatternFilter createPatternFilter();
-
-	/** Returns the input object for the tree viewer. */
-	protected abstract Object getInputObject();
-
-	/**
-	 * Creates the comparator for the filtered tree. The default is
-	 * {@link ViewerComparator#ViewerComparator()}.
-	 */
-	protected ViewerComparator createComparator() {
-		return new ViewerComparator();
-	}
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/MigrationServiceIntrospectionDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/MigrationServiceIntrospectionDetailsUIHandler.java
deleted file mode 100644
index 66c7b9094dbf373e56c5a5558bb35073e70d4ec3..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/MigrationServiceIntrospectionDetailsUIHandler.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.details.handler;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Tree;
-import org.fortiss.tooling.kernel.introspection.items.EObjectAwareIntrospectionDetailsItemBase;
-import org.fortiss.tooling.kernel.introspection.items.MigrationServiceIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.service.IMigrationService;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.DetailsUIHandlerBase;
-
-/**
- * {@link DetailsUIHandlerBase} for {@link IMigrationService}.
- * 
- * @author hoelzl
- */
-public class MigrationServiceIntrospectionDetailsUIHandler
-		extends EObjectAwareIntrospectionDetailsUIHandlerBase {
-	/** {@inheritDoc} */
-	@Override
-	public Control createComposite(ScrolledComposite parent) {
-		String heading = "Type to search registered migration providers:";
-		String footer = "Number of currently registered migration providers: " +
-				getInputObject().countHandlers();
-		return createFilteredTreeInTabFolder(parent, heading, footer, "Registered Providers");
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected void createTreeColumns(Tree tree) {
-		createDefaultTreeColumns(tree, "Class / Provider", 250, "Provider Class", 400,
-				"EObject Class", 400);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ITreeContentProvider createContentProvider() {
-		return new EObjectAwareTreeContentProviderBase() {
-			@Override
-			protected EObjectAwareIntrospectionDetailsItemBase<?> getInputObject() {
-				return MigrationServiceIntrospectionDetailsUIHandler.this.getInputObject();
-			}
-		};
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected MigrationServiceIntrospectionDetailsItem getInputObject() {
-		return (MigrationServiceIntrospectionDetailsItem)dataItem;
-	}
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/ModelEditorBindingServiceIntrospectionDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/ModelEditorBindingServiceIntrospectionDetailsUIHandler.java
deleted file mode 100644
index e8c55cd97cba5b4286c9681649970e348e248bf2..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/ModelEditorBindingServiceIntrospectionDetailsUIHandler.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.details.handler;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Tree;
-import org.fortiss.tooling.kernel.introspection.items.EObjectAwareIntrospectionDetailsItemBase;
-import org.fortiss.tooling.kernel.ui.internal.ModelEditorBindingService;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.DetailsUIHandlerBase;
-import org.fortiss.tooling.kernel.ui.internal.introspection.items.ModelEditorBindingServiceIntrospectionDetailsItem;
-
-/**
- * {@link DetailsUIHandlerBase} for {@link ModelEditorBindingService}.
- * 
- * @author hoelzl
- */
-public final class ModelEditorBindingServiceIntrospectionDetailsUIHandler
-		extends EObjectAwareIntrospectionDetailsUIHandlerBase {
-
-	/** {@inheritDoc} */
-	@Override
-	public Control createComposite(ScrolledComposite parent) {
-		String heading = "Type to search registered model editor bindings:";
-		String footer = "Number of currently registered model editor bindings: " +
-				getInputObject().countHandlers();
-		return createFilteredTreeInTabFolder(parent, heading, footer, "Registered Bindings");
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected void createTreeColumns(Tree tree) {
-		createDefaultTreeColumns(tree, "Class / Binding", 250, "Binding Class", 400,
-				"EObject Class", 400);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ITreeContentProvider createContentProvider() {
-		return new EObjectAwareTreeContentProviderBase() {
-			@Override
-			protected EObjectAwareIntrospectionDetailsItemBase<?> getInputObject() {
-				return ModelEditorBindingServiceIntrospectionDetailsUIHandler.this.getInputObject();
-			}
-		};
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ModelEditorBindingServiceIntrospectionDetailsItem getInputObject() {
-		return (ModelEditorBindingServiceIntrospectionDetailsItem)dataItem;
-	}
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/ModelElementHandlerServiceIntrospectionDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/ModelElementHandlerServiceIntrospectionDetailsUIHandler.java
deleted file mode 100644
index c4f7b3ddb66b2bfa14e0dd64516d613fa54d6df0..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/ModelElementHandlerServiceIntrospectionDetailsUIHandler.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.details.handler;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Tree;
-import org.fortiss.tooling.kernel.introspection.items.EObjectAwareIntrospectionDetailsItemBase;
-import org.fortiss.tooling.kernel.ui.internal.ModelElementHandlerService;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.DetailsUIHandlerBase;
-import org.fortiss.tooling.kernel.ui.internal.introspection.items.ModelElementHandlerServiceIntrospectionDetailsItem;
-
-/**
- * {@link DetailsUIHandlerBase} for {@link ModelElementHandlerService}.
- * 
- * @author hoelzl
- */
-public final class ModelElementHandlerServiceIntrospectionDetailsUIHandler
-		extends EObjectAwareIntrospectionDetailsUIHandlerBase {
-
-	/** {@inheritDoc} */
-	@Override
-	public Control createComposite(ScrolledComposite parent) {
-		String heading = "Type to search registered model element handlers:";
-		String footer = "Number of currently registered model element handlers: " +
-				getInputObject().countHandlers();
-		return createFilteredTreeInTabFolder(parent, heading, footer, "Registered Handlers");
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected void createTreeColumns(Tree tree) {
-		createDefaultTreeColumns(tree, "Class / Handler", 250, "Handler Class", 400,
-				"EObject Class", 400);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ITreeContentProvider createContentProvider() {
-		return new EObjectAwareTreeContentProviderBase() {
-			@Override
-			protected EObjectAwareIntrospectionDetailsItemBase<?> getInputObject() {
-				return ModelElementHandlerServiceIntrospectionDetailsUIHandler.this
-						.getInputObject();
-			}
-		};
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ModelElementHandlerServiceIntrospectionDetailsItem getInputObject() {
-		return (ModelElementHandlerServiceIntrospectionDetailsItem)dataItem;
-	}
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/PrototypeServiceIntrospectionDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/PrototypeServiceIntrospectionDetailsUIHandler.java
deleted file mode 100644
index b61fffe1291bec05fc0f727834be9ab0f1a7acba..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/PrototypeServiceIntrospectionDetailsUIHandler.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.details.handler;
-
-import org.conqat.ide.commons.ui.jface.TreeContentProviderBase;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TableLabelProviderBase;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.ui.dialogs.PatternFilter;
-import org.fortiss.tooling.kernel.extension.IPrototypeProvider;
-import org.fortiss.tooling.kernel.extension.data.Prototype;
-import org.fortiss.tooling.kernel.extension.data.PrototypeCategory;
-import org.fortiss.tooling.kernel.service.IPrototypeService;
-
-/**
- * Introspection UI handler for the {@link IPrototypeService}.
- * 
- * @author hoelzl
- */
-public final class PrototypeServiceIntrospectionDetailsUIHandler
-		extends IntrospectionDetailsUIHandlerBase {
-
-	/** {@inheritDoc} */
-	@Override
-	public Control createComposite(ScrolledComposite parent) {
-		String heading = "Type to search registered providers:";
-		String footer = "Number of currently registered prototypes: " +
-				IPrototypeService.getInstance().getAllPrototypes().size() + " (" +
-				IPrototypeService.getInstance().getPrimaryPrototypes().size() +
-				" primary prototypes)";
-		return createFilteredTreeInTabFolder(parent, heading, footer, "Registered Providers");
-	}
-
-	/** Find the prototype provider for the given prototype. */
-	private Class<? extends IPrototypeProvider> findProtoypeProviderClass(Prototype proto) {
-		for(IPrototypeProvider provider : IPrototypeService.getInstance().getPrototypeProviders()) {
-			if(provider.getPrototypes().contains(proto)) {
-				return provider.getClass();
-			}
-		}
-		return null;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected void createTreeColumns(Tree tree) {
-		TreeColumn col0 = new TreeColumn(tree, SWT.LEFT);
-		col0.setText("Category / Prototype");
-		col0.setWidth(200);
-
-		TreeColumn col1 = new TreeColumn(tree, SWT.LEFT);
-		col1.setText("Provider Class");
-		col1.setWidth(400);
-
-		TreeColumn col2 = new TreeColumn(tree, SWT.LEFT);
-		col2.setText("EObject Class");
-		col2.setWidth(400);
-
-		TreeColumn col3 = new TreeColumn(tree, SWT.CENTER);
-		col3.setText("Primary");
-		col3.setWidth(50);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected void populateContextMenu(Object selection, MenuManager mgr) {
-		Prototype proto = (Prototype)selection;
-		final Class<? extends IPrototypeProvider> provClass = findProtoypeProviderClass(proto);
-		mgr.add(createCopyClassNameAction(provClass));
-		mgr.add(createCopyClassNameAction(proto.getPrototype().getClass()));
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected boolean testSelection(Object selection) {
-		return selection instanceof Prototype;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ITreeContentProvider createContentProvider() {
-		return new TreeContentProviderBase() {
-
-			@Override
-			public Object[] getChildren(Object parentElement) {
-				if(parentElement instanceof IPrototypeService) {
-					IPrototypeService srv = (IPrototypeService)parentElement;
-					return srv.getAllTopLevelPrototypesCategories().toArray();
-				}
-				if(parentElement instanceof PrototypeCategory) {
-					PrototypeCategory cat = (PrototypeCategory)parentElement;
-					return cat.getChildren();
-				}
-				return null;
-			}
-		};
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ITableLabelProvider createLabelProvider() {
-		return new TableLabelProviderBase() {
-			@Override
-			public String getColumnText(Object parentElement, int columnIndex) {
-				if(parentElement instanceof PrototypeCategory) {
-					PrototypeCategory cat = (PrototypeCategory)parentElement;
-					return columnIndex == 0 ? cat.getName() : "";
-				}
-				if(parentElement instanceof Prototype) {
-					Prototype proto = (Prototype)parentElement;
-					switch(columnIndex) {
-						case 0:
-							return proto.getName();
-						case 1:
-							return findProtoypeProviderClass(proto).getName();
-						case 2:
-							return proto.getPrototype().getClass().getName();
-						case 3:
-							return proto.isPrimary() ? "X" : "";
-					}
-				}
-				return "";
-			}
-		};
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected PatternFilter createPatternFilter() {
-		return new TableViewerPatternFilter();
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected Object getInputObject() {
-		return IPrototypeService.getInstance();
-	}
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/TableViewerPatternFilter.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/TableViewerPatternFilter.java
deleted file mode 100644
index 7a7cb1f25d12b5c89c91a3e29169412de8cbb867..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/TableViewerPatternFilter.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.details.handler;
-
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.dialogs.PatternFilter;
-
-/**
- * Class for tree table viewer {@link PatternFilter}s.
- * Sub-classes should override {@link #basicMatch(String, int)}.
- * 
- * @author hoelzl
- */
-class TableViewerPatternFilter extends PatternFilter {
-	/** {@inheritDoc} */
-	@Override
-	protected boolean isLeafMatch(Viewer viewer, Object element) {
-		TreeViewer tv = (TreeViewer)viewer;
-		int nCols = tv.getTree().getColumnCount();
-		boolean isMatch = false;
-		for(int columnIndex = 0; columnIndex < nCols; columnIndex++) {
-			ColumnLabelProvider labelProvider =
-					(ColumnLabelProvider)tv.getLabelProvider(columnIndex);
-			String labelText = labelProvider.getText(element);
-			isMatch |= basicMatch(labelText, columnIndex);
-		}
-		return isMatch;
-	}
-
-	/**
-	 * Matches the label in the given column.
-	 * 
-	 * @param labelText
-	 *            Label text to be matched.
-	 * @param columnIndex
-	 *            Index of column for which label text has to be matched.
-	 * 
-	 * @return {@code true} in case of match.
-	 */
-	protected boolean basicMatch(String labelText, int columnIndex) {
-		return wordMatches(labelText);
-	}
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/TransformationServiceIntrospectionDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/TransformationServiceIntrospectionDetailsUIHandler.java
deleted file mode 100644
index 8e8d54dbc2ad0b765467a25b1fc1fdbc8c388a20..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/TransformationServiceIntrospectionDetailsUIHandler.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.details.handler;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Tree;
-import org.fortiss.tooling.kernel.introspection.items.EObjectAware2IntrospectionDetailsItemBase;
-import org.fortiss.tooling.kernel.introspection.items.TransformationServiceIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.service.ITransformationService;
-
-/**
- * Introspection UI handler for the {@link ITransformationService}.
- * 
- * @author hoelzl
- */
-public final class TransformationServiceIntrospectionDetailsUIHandler
-		extends EObjectAware2IntrospectionDetailsUIHandlerBase {
-
-	/** {@inheritDoc} */
-	@Override
-	public Control createComposite(ScrolledComposite parent) {
-		String heading = "Type to serach registered transformation providers:";
-		String footer = "Number of currently registered transformation providers: " +
-				getInputObject().countHandlers();
-		return createFilteredTreeInTabFolder(parent, heading, footer, "Registered Providers");
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected void createTreeColumns(Tree tree) {
-		createDefaultTreeColumns(tree, "Source / Target / Provider", 250, "Provider Class", 400,
-				"Source EObject Class", 400, "Target EObject Class", 400);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ITreeContentProvider createContentProvider() {
-		return new EObjectAware2TreeContentProviderBase() {
-			@Override
-			protected EObjectAware2IntrospectionDetailsItemBase<?> getInputObject() {
-				return TransformationServiceIntrospectionDetailsUIHandler.this.getInputObject();
-			}
-		};
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected TransformationServiceIntrospectionDetailsItem getInputObject() {
-		return (TransformationServiceIntrospectionDetailsItem)dataItem;
-	}
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/package.html b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/package.html
deleted file mode 100644
index d07768e69acb8ea235c58eb6834108e6aebbeed3..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/package.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<!-- (c) 2017 fortiss GmbH -->
-<body>
-User interface for details display of the kernel introspection system service (KISS).
-This package contains service-specific, detailed information UI elements. 
-</body>
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/package.html b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/package.html
deleted file mode 100644
index 9f8e01e9ee5f5c09bf33d93cf96cf6faa7c4948b..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/package.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<!-- (c) 2017 fortiss GmbH -->
-<body>
-User interface for details display of the kernel introspection system service (KISS).
-This package contains base classes for the service-specific, detailed information UI elements. 
-</body>
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/items/.ratings b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/items/.ratings
deleted file mode 100644
index cf998a62cc03308101d57266a57e1116a2e3850f..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/items/.ratings
+++ /dev/null
@@ -1,5 +0,0 @@
-AllocationEditPartFactoryServiceIntrospectionDetailsItem.java e2067b2d95c270a9aed82a2368177d76b0144d79 GREEN
-ContextMenuServiceIntrospectionDetailsItem.java ce7c725510e986b99fcddb40676cf6a5e7c2351d GREEN
-EditPartFactoryServiceIntrospectionDetailsItem.java f11316c73b6de0e254c4e319e063065e598d5c96 GREEN
-ModelEditorBindingServiceIntrospectionDetailsItem.java b241c242f5d8597542d9b63276b64ac2ca81ec7d GREEN
-ModelElementHandlerServiceIntrospectionDetailsItem.java 327eec0c247f1413bc629dd57b3a71a885e51a1b GREEN
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/items/ContextMenuServiceIntrospectionDetailsItem.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/items/ContextMenuServiceIntrospectionDetailsItem.java
deleted file mode 100644
index ce7c725510e986b99fcddb40676cf6a5e7c2351d..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/items/ContextMenuServiceIntrospectionDetailsItem.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.items;
-
-import java.util.List;
-
-import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.introspection.items.HandlerListIntrospectionDetailsItemBase;
-import org.fortiss.tooling.kernel.ui.extension.IContextMenuContributor;
-import org.fortiss.tooling.kernel.ui.internal.ContextMenuService;
-
-/**
- * {@link IIntrospectionDetailsItem} for the {@link ContextMenuService}.
- * 
- * @author hoelzl
- */
-public final class ContextMenuServiceIntrospectionDetailsItem
-		extends HandlerListIntrospectionDetailsItemBase<IContextMenuContributor> {
-
-	/** Constructor. */
-	public ContextMenuServiceIntrospectionDetailsItem(List<IContextMenuContributor> handlerList) {
-		super(handlerList);
-	}
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/items/ModelEditorBindingServiceIntrospectionDetailsItem.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/items/ModelEditorBindingServiceIntrospectionDetailsItem.java
deleted file mode 100644
index b241c242f5d8597542d9b63276b64ac2ca81ec7d..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/items/ModelEditorBindingServiceIntrospectionDetailsItem.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.items;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.emf.ecore.EObject;
-import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.introspection.items.EObjectAwareIntrospectionDetailsItemBase;
-import org.fortiss.tooling.kernel.ui.extension.IModelEditorBinding;
-import org.fortiss.tooling.kernel.ui.internal.ModelEditorBindingService;
-
-/**
- * {@link IIntrospectionDetailsItem} for {@link ModelEditorBindingService}.
- * 
- * @author hoelzl
- */
-public final class ModelEditorBindingServiceIntrospectionDetailsItem
-		extends EObjectAwareIntrospectionDetailsItemBase<IModelEditorBinding<EObject>> {
-
-	/** Constructor. */
-	public ModelEditorBindingServiceIntrospectionDetailsItem(
-			Map<Class<?>, List<IModelEditorBinding<EObject>>> handlerMap) {
-		super(handlerMap);
-	}
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/items/ModelElementHandlerServiceIntrospectionDetailsItem.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/items/ModelElementHandlerServiceIntrospectionDetailsItem.java
deleted file mode 100644
index 327eec0c247f1413bc629dd57b3a71a885e51a1b..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/items/ModelElementHandlerServiceIntrospectionDetailsItem.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.items;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.emf.ecore.EObject;
-import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.introspection.items.EObjectAwareIntrospectionDetailsItemBase;
-import org.fortiss.tooling.kernel.ui.extension.IModelElementHandler;
-import org.fortiss.tooling.kernel.ui.internal.ModelElementHandlerService;
-
-/**
- * {@link IIntrospectionDetailsItem} for {@link ModelElementHandlerService}.
- * 
- * @author hoelzl
- */
-public final class ModelElementHandlerServiceIntrospectionDetailsItem
-		extends EObjectAwareIntrospectionDetailsItemBase<IModelElementHandler<EObject>> {
-
-	/** Constructor. */
-	public ModelElementHandlerServiceIntrospectionDetailsItem(
-			Map<Class<?>, List<IModelElementHandler<EObject>>> handlerMap) {
-		super(handlerMap);
-	}
-}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/package.html b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/package.html
deleted file mode 100644
index 4ed8679dfe6fb1ff7f815bb6efea4a1843a9014c..0000000000000000000000000000000000000000
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/package.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<!-- (c) 2017 fortiss GmbH -->
-<body>
-User interface for the kernel introspection system service (KISS).
-It provides an Eclipse view with a tree viewer showing all introspective
-services (and their specific items) as well as a section for service-specific,
-detailed information. 
-</body>
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/.ratings b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/.ratings
new file mode 100644
index 0000000000000000000000000000000000000000..752d9f907120707e50923f82915543147b841840
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/.ratings
@@ -0,0 +1,5 @@
+ClipboardCopyHelper.java 1d9a9891278ab84932857eaa978dda4391978047 GREEN
+KISSCompositeFXController.java 10f73a3a2034824eb14a8fda1f67bcc05285e3b0 GREEN
+KISSFXController.java c38fc9efa826c68e74ac118e666088f407cb54fb GREEN
+KISSServicesFXController.java cb59024c94164cf187041634c38a6dee1107e3a2 GREEN
+KISSServicesFXViewPart.java 1a8370028bf79a8071f616dae985df3831c7f8b6 GREEN
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/ClipboardCopyHelper.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/ClipboardCopyHelper.java
new file mode 100644
index 0000000000000000000000000000000000000000..1d9a9891278ab84932857eaa978dda4391978047
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/ClipboardCopyHelper.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2019 fortiss GmbH. 
+ * 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ * which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ *******************************************************************************/
+package org.fortiss.tooling.kernel.ui.introspection;
+
+import static javafx.scene.input.Clipboard.getSystemClipboard;
+
+import javafx.scene.control.ContextMenu;
+import javafx.scene.control.MenuItem;
+import javafx.scene.input.Clipboard;
+import javafx.scene.input.ClipboardContent;
+
+/** Helper class for copying a class name to the system clipboard. */
+public final class ClipboardCopyHelper {
+	/** Creates a context menu to copy the given class name. */
+	public static ContextMenu createCopyClassNameMenu(Class<?> toCopy) {
+		return createCopyClassNameMenu(toCopy.getName());
+	}
+
+	/** Creates a context menu to copy the given class name. */
+	public static ContextMenu createCopyClassNameMenu(String fullyQualified) {
+		return createContextMenu("Copy '" + fullyQualified + "' to clipboard.", fullyQualified);
+	}
+
+	/** Creates a context menu to copy the stack trace of the given {@link Throwable}. */
+	public static ContextMenu createCopyStrackTraceMenu(Throwable throwable) {
+		StringBuilder sb = new StringBuilder();
+		for(StackTraceElement ste : throwable.getStackTrace()) {
+			sb.append(ste.toString()).append('\n');
+		}
+		return createContextMenu("Copy Stack Trace", sb.toString());
+	}
+
+	/** Creates the context menu. */
+	private static ContextMenu createContextMenu(String label, String data) {
+		ContextMenu menu = new ContextMenu();
+		MenuItem item = new MenuItem(label);
+		item.setOnAction(event -> {
+			Clipboard clipboard = getSystemClipboard();
+			ClipboardContent content = new ClipboardContent();
+			content.putString(data);
+			clipboard.setContent(content);
+		});
+		menu.getItems().add(item);
+		return menu;
+	}
+}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/KISSViewerLabelProvider.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/KISSCompositeFXController.java
similarity index 58%
rename from org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/KISSViewerLabelProvider.java
rename to org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/KISSCompositeFXController.java
index 639495bdc8ce8c13edd464869ff625f745ed9809..10f73a3a2034824eb14a8fda1f67bcc05285e3b0 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/KISSViewerLabelProvider.java
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/KISSCompositeFXController.java
@@ -1,5 +1,5 @@
 /*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
+| Copyright 2020 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -13,30 +13,27 @@
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection;
+package org.fortiss.tooling.kernel.ui.introspection;
 
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer;
+import org.fortiss.tooling.common.ui.javafx.layout.CompositeFXControllerBase;
 import org.fortiss.tooling.kernel.introspection.IIntrospectionItem;
 
+import javafx.scene.Node;
+
 /**
- * Label provider for the tree viewer of the {@link KISSViewPart}.
+ * Abstract class specifying the functionality to be provided by a controller to be contained in a
+ * {@link KISSFXController}-based view.
  * 
- * @author hoelzl
+ * @author munaro
  */
-final class KISSViewerLabelProvider extends LabelProvider {
-	/** {@inheritDoc} */
-	@Override
-	public Image getImage(Object element) {
-		return null;
-	}
+@SuppressWarnings("unchecked")
+public abstract class KISSCompositeFXController<T extends Node>
+		extends CompositeFXControllerBase<T, Node> {
 
-	/** {@inheritDoc} */
-	@Override
-	public String getText(Object element) {
-		if(element instanceof IIntrospectionItem) {
-			return ((IIntrospectionItem)element).getIntrospectionLabel();
-		}
-		return null;
-	}
+	/**
+	 * This method is executed each time the {@link IIntrospectionItem} selected in the
+	 * {@link KISSFXController}'s {@link DynamicTreeTableViewer} changes.
+	 */
+	public abstract void changed(IIntrospectionItem selection);
 }
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/KISSFXController.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/KISSFXController.java
new file mode 100644
index 0000000000000000000000000000000000000000..c38fc9efa826c68e74ac118e666088f407cb54fb
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/KISSFXController.java
@@ -0,0 +1,119 @@
+/*-------------------------------------------------------------------------+
+| Copyright 2020 fortiss GmbH                                              |
+|                                                                          |
+| Licensed under the Apache License, Version 2.0 (the "License");          |
+| you may not use this file except in compliance with the License.         |
+| You may obtain a copy of the License at                                  |
+|                                                                          |
+|    http://www.apache.org/licenses/LICENSE-2.0                            |
+|                                                                          |
+| Unless required by applicable law or agreed to in writing, software      |
+| distributed under the License is distributed on an "AS IS" BASIS,        |
+| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+| See the License for the specific language governing permissions and      |
+| limitations under the License.                                           |
++--------------------------------------------------------------------------*/
+package org.fortiss.tooling.kernel.ui.introspection;
+
+import static org.fortiss.tooling.common.util.LambdaUtils.getFirst;
+
+import java.util.stream.Collectors;
+
+import org.fortiss.tooling.common.ui.javafx.layout.CompositeFXControllerBase;
+import org.fortiss.tooling.kernel.introspection.IIntrospectionItem;
+import org.fortiss.tooling.kernel.introspection.KernelIntrospectionSystemService;
+
+import javafx.beans.value.ChangeListener;
+import javafx.beans.value.ObservableValue;
+import javafx.fxml.FXML;
+import javafx.scene.Node;
+import javafx.scene.control.TreeCell;
+import javafx.scene.control.TreeItem;
+import javafx.scene.control.TreeView;
+import javafx.scene.layout.BorderPane;
+
+/**
+ * Controller for the Java FX-based UI common to all KISS-based views. The specific views to be
+ * displayed have extend the abstract {@link KISSCompositeFXController} class.
+ * 
+ * @author munaro
+ */
+public class KISSFXController extends CompositeFXControllerBase<BorderPane, Node>
+		implements ChangeListener<TreeItem<IIntrospectionItem>> {
+
+	/** The pane of the view. */
+	@FXML
+	protected BorderPane borderPane;
+
+	/** The introspection service. */
+	protected KernelIntrospectionSystemService kiss;
+	/** The tree viewer. */
+	private TreeView<IIntrospectionItem> treeview;
+	/** The {@link KISSCompositeFXController} of the specific KISS view to be displayed. */
+	private KISSCompositeFXController<? extends Node> composite;
+
+	/** Constructor. */
+	@SuppressWarnings("unchecked")
+	public KISSFXController(KISSCompositeFXController<? extends Node> composite) {
+		super(composite);
+		this.composite = composite;
+		this.kiss = KernelIntrospectionSystemService.getInstance();
+	}
+
+	/**
+	 * Implementation for tree cells returning the
+	 * {@link IIntrospectionItem#getIntrospectionLabel()}.
+	 */
+	private class TreeCellImpl extends TreeCell<IIntrospectionItem> {
+		/** {@inheritDoc} */
+		@Override
+		protected void updateItem(IIntrospectionItem item, boolean empty) {
+			super.updateItem(item, empty);
+			String text = null;
+			if(!empty && item != null) {
+				text = item.getIntrospectionLabel();
+			}
+			setText(text);
+			setGraphic(null);
+		}
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public String getFXMLLocation() {
+		return "KISS.fxml";
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void initialize() {
+		TreeItem<IIntrospectionItem> root = new TreeItem<IIntrospectionItem>(kiss);
+		root.getChildren()
+				.addAll(kiss.getIntrospectionItems().stream().map((IIntrospectionItem iii) -> {
+					return new TreeItem<IIntrospectionItem>(iii);
+				}).collect(Collectors.toList()));
+		root.setExpanded(true);
+		root.getChildren().sort((c0, c1) -> {
+			String l0 = c0.getValue().getIntrospectionLabel();
+			String l1 = c1.getValue().getIntrospectionLabel();
+			return l0.compareTo(l1);
+		});
+		treeview = new TreeView<IIntrospectionItem>(root);
+		treeview.setCellFactory((TreeView<IIntrospectionItem> tv) -> {
+			return new TreeCellImpl();
+		});
+		treeview.getSelectionModel().selectedItemProperty().addListener(this);
+
+		borderPane.setLeft(treeview);
+
+		Node center = getFirst(getContainments()).get().getLayout();
+		borderPane.setCenter(center);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void changed(ObservableValue<? extends TreeItem<IIntrospectionItem>> observable,
+			TreeItem<IIntrospectionItem> oldValue, TreeItem<IIntrospectionItem> newValue) {
+		composite.changed(newValue.getValue());
+	}
+}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/KISSServicesFXController.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/KISSServicesFXController.java
new file mode 100644
index 0000000000000000000000000000000000000000..cb59024c94164cf187041634c38a6dee1107e3a2
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/KISSServicesFXController.java
@@ -0,0 +1,87 @@
+/*-------------------------------------------------------------------------+
+| Copyright 2020 fortiss GmbH                                              |
+|                                                                          |
+| Licensed under the Apache License, Version 2.0 (the "License");          |
+| you may not use this file except in compliance with the License.         |
+| You may obtain a copy of the License at                                  |
+|                                                                          |
+|    http://www.apache.org/licenses/LICENSE-2.0                            |
+|                                                                          |
+| Unless required by applicable law or agreed to in writing, software      |
+| distributed under the License is distributed on an "AS IS" BASIS,        |
+| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+| See the License for the specific language governing permissions and      |
+| limitations under the License.                                           |
++--------------------------------------------------------------------------*/
+package org.fortiss.tooling.kernel.ui.introspection;
+
+import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.introspection.IIntrospectionItem;
+import org.fortiss.tooling.kernel.introspection.IIntrospectiveKernelService;
+import org.fortiss.tooling.kernel.ui.introspection.details.DetailsUIHandlerBase;
+import org.fortiss.tooling.kernel.ui.introspection.details.KISSDetailsUIRegistry;
+
+import javafx.fxml.FXML;
+import javafx.scene.Node;
+import javafx.scene.control.Label;
+import javafx.scene.layout.BorderPane;
+import javafx.scene.layout.VBox;
+
+/**
+ * Controller for the view for the detailed inspection of KISS services.
+ * 
+ * @author munaro
+ */
+public class KISSServicesFXController extends KISSCompositeFXController<VBox> {
+
+	/** {@link BorderPane} displaying the description and the details of the selected service. */
+	@FXML
+	private BorderPane borderPane;
+
+	/** {@link VBox} displaying the description of the selected service. */
+	@FXML
+	private VBox vBox;
+
+	/** The description label at the bottom. */
+	@FXML
+	private Label label;
+
+	/** The greeting text. */
+	static final String GREETING =
+			"Welcome to KISS!\n\nThis is the kernel introspection system service.";
+
+	/** {@inheritDoc} */
+	@Override
+	public String getFXMLLocation() {
+		return "KISSServices.fxml";
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void initialize() {
+		// nothing to do
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void changed(IIntrospectionItem selection) {
+		Node center = new Label("No details available!");
+		String descr = GREETING;
+		if(selection instanceof IIntrospectiveKernelService) {
+			IIntrospectiveKernelService ks = (IIntrospectiveKernelService)selection;
+			descr = ks.getIntrospectionDescription();
+			IIntrospectionDetailsItem item = ks.getDetailsItem();
+			if(item != null) {
+				DetailsUIHandlerBase handler =
+						KISSDetailsUIRegistry.getInstance().getHandler(item.getClass());
+				if(handler != null) {
+					handler.setService(ks);
+					handler.setDataItem(item);
+					center = handler.createDisplayControl();
+				}
+			}
+		}
+		label.setText(descr);
+		borderPane.setCenter(center);
+	}
+}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/KISSServicesFXViewPart.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/KISSServicesFXViewPart.java
new file mode 100644
index 0000000000000000000000000000000000000000..1a8370028bf79a8071f616dae985df3831c7f8b6
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/KISSServicesFXViewPart.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2018 fortiss GmbH.
+ * 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ * which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ *******************************************************************************/
+package org.fortiss.tooling.kernel.ui.introspection;
+
+import org.fortiss.tooling.common.ui.javafx.AF3FXViewPart;
+import org.fortiss.tooling.kernel.introspection.KernelIntrospectionSystemService;
+
+/** View part for {@link KernelIntrospectionSystemService KISS}. */
+public class KISSServicesFXViewPart extends AF3FXViewPart {
+	/** Constructor. */
+	public KISSServicesFXViewPart() throws Exception {
+		super(new KISSFXController(new KISSServicesFXController()), null);
+	}
+}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/.ratings b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/.ratings
new file mode 100644
index 0000000000000000000000000000000000000000..7114a0c9dd4bc79017a35ded4ef7090bd1c90342
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/.ratings
@@ -0,0 +1,2 @@
+DetailsUIHandlerBase.java 123df7b1e0ca97f3ed190cc725a83730f09d3bf1 GREEN
+KISSDetailsUIRegistry.java e8264a46606710b58fe5e6d830b37c223d9ddced GREEN
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/DetailsUIHandlerBase.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/DetailsUIHandlerBase.java
new file mode 100644
index 0000000000000000000000000000000000000000..123df7b1e0ca97f3ed190cc725a83730f09d3bf1
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/DetailsUIHandlerBase.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2018 fortiss GmbH.
+ * 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ * which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ *******************************************************************************/
+package org.fortiss.tooling.kernel.ui.introspection.details;
+
+import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.introspection.IIntrospectiveKernelService;
+import org.fortiss.tooling.kernel.introspection.KernelIntrospectionSystemService;
+
+import javafx.scene.Node;
+
+/**
+ * Base class for factory implementations of the details view of the
+ * {@link KernelIntrospectionSystemService} GUI.
+ * 
+ * @author hoelzl
+ */
+public abstract class DetailsUIHandlerBase {
+	/** The {@link IIntrospectionDetailsItem data item}. */
+	protected IIntrospectiveKernelService service;
+	/** The {@link IIntrospectionDetailsItem data item}. */
+	protected IIntrospectionDetailsItem dataItem;
+
+	/** Sets the data item. */
+	public final void setDataItem(IIntrospectionDetailsItem dataItem) {
+		this.dataItem = dataItem;
+	}
+
+	/** Sets the service. */
+	public final void setService(IIntrospectiveKernelService service) {
+		this.service = service;
+	}
+
+	/** Creates the control for the details display. */
+	public abstract Node createDisplayControl();
+}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/KISSDetailsUIRegistry.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/KISSDetailsUIRegistry.java
new file mode 100644
index 0000000000000000000000000000000000000000..e8264a46606710b58fe5e6d830b37c223d9ddced
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/KISSDetailsUIRegistry.java
@@ -0,0 +1,104 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2018 fortiss GmbH.
+ * 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ * which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ *******************************************************************************/
+package org.fortiss.tooling.kernel.ui.introspection.details;
+
+import java.util.HashMap;
+
+import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.introspection.IIntrospectionItem;
+import org.fortiss.tooling.kernel.introspection.items.ConnectionCompositorKISSDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.ConstraintCheckerKISSDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.EclipseResourceStorageKISSDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.ElementCompositorKISSDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.LibraryKISSDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.MigrationKISSDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.PersistencyKISSDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.PrototypeKISSDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.TransformationKISSDetailsItem;
+import org.fortiss.tooling.kernel.ui.introspection.details.handler.AllocationEditPartFactoryKISSDetailsUIHandler;
+import org.fortiss.tooling.kernel.ui.introspection.details.handler.ConnectionCompositorKISSDetailsUIHandler;
+import org.fortiss.tooling.kernel.ui.introspection.details.handler.ConstraintCheckerKISSDetailsUIHandler;
+import org.fortiss.tooling.kernel.ui.introspection.details.handler.ContextMenuKISSDetailsUIHandler;
+import org.fortiss.tooling.kernel.ui.introspection.details.handler.EclipseResourceStorageKISSDetailsUIHandler;
+import org.fortiss.tooling.kernel.ui.introspection.details.handler.EditPartFactoryKISSDetailsUIHandler;
+import org.fortiss.tooling.kernel.ui.introspection.details.handler.ElementCompositorKISSDetailsUIHandler;
+import org.fortiss.tooling.kernel.ui.introspection.details.handler.LibraryKISSDetailsUIHandler;
+import org.fortiss.tooling.kernel.ui.introspection.details.handler.MigrationKISSDetailsUIHandler;
+import org.fortiss.tooling.kernel.ui.introspection.details.handler.ModelEditorBindingKISSDetailsUIHandler;
+import org.fortiss.tooling.kernel.ui.introspection.details.handler.ModelElementHandlerKISSDetailsUIHandler;
+import org.fortiss.tooling.kernel.ui.introspection.details.handler.PersistencyKISSDetailsUIHandler;
+import org.fortiss.tooling.kernel.ui.introspection.details.handler.PrototypeKISSDetailsUIHandler;
+import org.fortiss.tooling.kernel.ui.introspection.details.handler.TransformationKISSDetailsUIHandler;
+import org.fortiss.tooling.kernel.ui.introspection.items.AllocationEditPartFactoryKISSDetailsItem;
+import org.fortiss.tooling.kernel.ui.introspection.items.ContextMenuKISSDetailsItem;
+import org.fortiss.tooling.kernel.ui.introspection.items.EditPartFactoryKISSDetailsItem;
+import org.fortiss.tooling.kernel.ui.introspection.items.ModelEditorBindingKISSDetailsItem;
+import org.fortiss.tooling.kernel.ui.introspection.items.ModelElementHandlerKISSDetailsItem;
+
+/** Registry class to provide the details GUI for a given {@link IIntrospectionItem}. */
+public final class KISSDetailsUIRegistry {
+
+	/** Returns the singleton instance of the service. */
+	private static final KISSDetailsUIRegistry INSTANCE = new KISSDetailsUIRegistry();
+
+	/** Returns the singleton instance. */
+	public static KISSDetailsUIRegistry getInstance() {
+		return INSTANCE;
+	}
+
+	/** The registry. */
+	private final HashMap<Class<? extends IIntrospectionDetailsItem>, DetailsUIHandlerBase> registry =
+			new HashMap<Class<? extends IIntrospectionDetailsItem>, DetailsUIHandlerBase>();
+
+	/** Constructor. */
+	public KISSDetailsUIRegistry() {
+		registerHandler(AllocationEditPartFactoryKISSDetailsItem.class,
+				new AllocationEditPartFactoryKISSDetailsUIHandler());
+		registerHandler(ConnectionCompositorKISSDetailsItem.class,
+				new ConnectionCompositorKISSDetailsUIHandler());
+		registerHandler(ConstraintCheckerKISSDetailsItem.class,
+				new ConstraintCheckerKISSDetailsUIHandler());
+		registerHandler(ContextMenuKISSDetailsItem.class,
+				new ContextMenuKISSDetailsUIHandler());
+		registerHandler(EclipseResourceStorageKISSDetailsItem.class,
+				new EclipseResourceStorageKISSDetailsUIHandler());
+		registerHandler(EditPartFactoryKISSDetailsItem.class,
+				new EditPartFactoryKISSDetailsUIHandler());
+		registerHandler(ElementCompositorKISSDetailsItem.class,
+				new ElementCompositorKISSDetailsUIHandler());
+		registerHandler(LibraryKISSDetailsItem.class,
+				new LibraryKISSDetailsUIHandler());
+		registerHandler(MigrationKISSDetailsItem.class,
+				new MigrationKISSDetailsUIHandler());
+		registerHandler(ModelEditorBindingKISSDetailsItem.class,
+				new ModelEditorBindingKISSDetailsUIHandler());
+		registerHandler(ModelElementHandlerKISSDetailsItem.class,
+				new ModelElementHandlerKISSDetailsUIHandler());
+		registerHandler(PrototypeKISSDetailsItem.class,
+				new PrototypeKISSDetailsUIHandler());
+		registerHandler(PersistencyKISSDetailsItem.class,
+				new PersistencyKISSDetailsUIHandler());
+		registerHandler(TransformationKISSDetailsItem.class,
+				new TransformationKISSDetailsUIHandler());
+	}
+
+	/** Registers the given composite */
+	public void registerHandler(Class<? extends IIntrospectionDetailsItem> clazz,
+			DetailsUIHandlerBase detailsHandler) {
+		registry.put(clazz, detailsHandler);
+	}
+
+	/** Returns the composite factory for the given class. */
+	public DetailsUIHandlerBase getHandler(Class<? extends IIntrospectionDetailsItem> clazz) {
+		return registry.get(clazz);
+	}
+}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/.ratings b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/.ratings
new file mode 100644
index 0000000000000000000000000000000000000000..49cd9020ddc8ffce7c7820ea5a74daa9b6ab87c9
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/.ratings
@@ -0,0 +1,17 @@
+AllocationEditPartFactoryKISSDetailsUIHandler.java 96794fac55a7d37451d361312a0c4314695ede83 GREEN
+ConnectionCompositorKISSDetailsUIHandler.java ebc85ae220655ca741af69c8957a8dd018de013d GREEN
+ConstraintCheckerKISSDetailsUIHandler.java a4472923f74039e53162bac35694f0c01857315a GREEN
+ContextMenuKISSDetailsUIHandler.java 6e329ca7f4e4919285a743cf49fba90e3789fcab GREEN
+EObjectAware2KISSDetailsUIHandlerBase.java 301276017de4db9bdd7fb90df09eaba8342a9e26 GREEN
+EObjectAwareKISSDetailsUIHandlerBase.java ff5a70e09a5a556cd7848179ca07031c87a3a17e GREEN
+EclipseResourceStorageKISSDetailsUIHandler.java b4a8d448631af61f79196e2b225aec586a77179d GREEN
+EditPartFactoryKISSDetailsUIHandler.java 6f04164781420e096cfbafa889449b037df11df2 GREEN
+ElementCompositorKISSDetailsUIHandler.java 9d416344ef4ae563a3d17ed81344c2b11bea1aa7 GREEN
+KISSDetailsUIHandlerBase.java 5008ec4bd54df3f7dbd91463a859dd955db5532b GREEN
+LibraryKISSDetailsUIHandler.java 47fe04336719264f697847671c7ec6fdacaf71ba GREEN
+MigrationKISSDetailsUIHandler.java eff83731e0115c0dff73b21438199e20b645ce39 GREEN
+ModelEditorBindingKISSDetailsUIHandler.java 324aa57296919b09c882ab415b90507267c5f75e GREEN
+ModelElementHandlerKISSDetailsUIHandler.java 3a20a86d7e053e7c7801e9f895628e451c93077b GREEN
+PersistencyKISSDetailsUIHandler.java 05d704220db19e0e31fb94ada2ddfc4dd6f28355 GREEN
+PrototypeKISSDetailsUIHandler.java 772e56f5ac42d719b93b4de894e3893528c47f7b GREEN
+TransformationKISSDetailsUIHandler.java f3641f3cc43df7b285badee15c31261f1a83a51b GREEN
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/AllocationEditPartFactoryServiceIntrospectionDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/AllocationEditPartFactoryKISSDetailsUIHandler.java
similarity index 59%
rename from org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/AllocationEditPartFactoryServiceIntrospectionDetailsUIHandler.java
rename to org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/AllocationEditPartFactoryKISSDetailsUIHandler.java
index 944cc4d5db305ceba7ca1f1f1957a5160511a228..96794fac55a7d37451d361312a0c4314695ede83 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/AllocationEditPartFactoryServiceIntrospectionDetailsUIHandler.java
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/AllocationEditPartFactoryKISSDetailsUIHandler.java
@@ -13,56 +13,56 @@
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.details.handler;
+package org.fortiss.tooling.kernel.ui.introspection.details.handler;
 
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Tree;
-import org.fortiss.tooling.kernel.introspection.items.EObjectAwareIntrospectionDetailsItemBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer;
+import org.fortiss.tooling.kernel.introspection.items.EObjectAwareKISSDetailsItemBase;
 import org.fortiss.tooling.kernel.ui.internal.AllocationEditPartFactoryService;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.DetailsUIHandlerBase;
-import org.fortiss.tooling.kernel.ui.internal.introspection.items.AllocationEditPartFactoryServiceIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.ui.introspection.details.DetailsUIHandlerBase;
+import org.fortiss.tooling.kernel.ui.introspection.items.AllocationEditPartFactoryKISSDetailsItem;
+
+import javafx.scene.Node;
 
 /**
  * {@link DetailsUIHandlerBase} for {@link AllocationEditPartFactoryService}.
  * 
  * @author hoelzl
  */
-public class AllocationEditPartFactoryServiceIntrospectionDetailsUIHandler
-		extends EObjectAwareIntrospectionDetailsUIHandlerBase {
+public class AllocationEditPartFactoryKISSDetailsUIHandler
+		extends EObjectAwareKISSDetailsUIHandlerBase {
 
 	/** {@inheritDoc} */
 	@Override
-	public Control createComposite(ScrolledComposite parent) {
+	public Node createDisplayControl() {
 		String heading = "Type to search registered allocation editpart factories:";
 		String footer = "Number of currently registered allocation editpart factories: " +
-				getInputObject().countHandlers();
-		return createFilteredTreeInTabFolder(parent, heading, footer, "Registered Factories");
+				getRootObject().countHandlers();
+		return createFilteredTree(heading, footer);
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	protected void createTreeColumns(Tree tree) {
+	protected void createTreeColumns(DynamicTreeTableViewer<Object> tree) {
 		createDefaultTreeColumns(tree, "Class / Factory", 250, "Factory Class", 400,
 				"EObject Class", 400);
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	protected ITreeContentProvider createContentProvider() {
+	protected DynamicTreeContentProviderBase<Object> createContentProvider() {
 		return new EObjectAwareTreeContentProviderBase() {
 			@Override
-			protected EObjectAwareIntrospectionDetailsItemBase<?> getInputObject() {
-				return AllocationEditPartFactoryServiceIntrospectionDetailsUIHandler.this
-						.getInputObject();
+			protected EObjectAwareKISSDetailsItemBase<?> getInputObject() {
+				return AllocationEditPartFactoryKISSDetailsUIHandler.this
+						.getRootObject();
 			}
 		};
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	protected AllocationEditPartFactoryServiceIntrospectionDetailsItem getInputObject() {
-		return (AllocationEditPartFactoryServiceIntrospectionDetailsItem)dataItem;
+	protected AllocationEditPartFactoryKISSDetailsItem getRootObject() {
+		return (AllocationEditPartFactoryKISSDetailsItem)dataItem;
 	}
 }
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/ConnectionCompositorKISSDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/ConnectionCompositorKISSDetailsUIHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..ebc85ae220655ca741af69c8957a8dd018de013d
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/ConnectionCompositorKISSDetailsUIHandler.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2018 fortiss GmbH.
+ * 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ * which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ *******************************************************************************/
+package org.fortiss.tooling.kernel.ui.introspection.details.handler;
+
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer;
+import org.fortiss.tooling.kernel.introspection.items.ConnectionCompositorKISSDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.EObjectAware2KISSDetailsItemBase;
+import org.fortiss.tooling.kernel.service.IConnectionCompositorService;
+
+import javafx.scene.Node;
+
+/**
+ * Introspection UI handler for the {@link IConnectionCompositorService}.
+ * 
+ * @author hoelzl
+ */
+public final class ConnectionCompositorKISSDetailsUIHandler
+		extends EObjectAware2KISSDetailsUIHandlerBase {
+	/** {@inheritDoc} */
+	@Override
+	public Node createDisplayControl() {
+		String heading = "Type to search registered connection compositors:";
+		String footer = "Number of currently registered connection compositors: " +
+				getRootObject().countHandlers();
+		return createFilteredTree(heading, footer);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected void createTreeColumns(DynamicTreeTableViewer<Object> tree) {
+		createDefaultTreeColumns(tree, "Source / Target / Compositor", 250, "Compositor Class", 400,
+				"Source EObject Class", 400, "Target EObject Class", 400);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected DynamicTreeContentProviderBase<Object> createContentProvider() {
+		return new EObjectAware2TreeContentProviderBase() {
+			@Override
+			protected EObjectAware2KISSDetailsItemBase<?> getInputObject() {
+				return ConnectionCompositorKISSDetailsUIHandler.this.getRootObject();
+			}
+		};
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected ConnectionCompositorKISSDetailsItem getRootObject() {
+		return (ConnectionCompositorKISSDetailsItem)dataItem;
+	}
+}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/ConstraintCheckerKISSDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/ConstraintCheckerKISSDetailsUIHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..a4472923f74039e53162bac35694f0c01857315a
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/ConstraintCheckerKISSDetailsUIHandler.java
@@ -0,0 +1,127 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2018 fortiss GmbH.
+ * 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ * which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ *******************************************************************************/
+package org.fortiss.tooling.kernel.ui.introspection.details.handler;
+
+import java.util.Collection;
+
+import org.eclipse.emf.ecore.EObject;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableUIProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer;
+import org.fortiss.tooling.kernel.extension.IConstraintChecker;
+import org.fortiss.tooling.kernel.introspection.IIntrospectionItem;
+import org.fortiss.tooling.kernel.introspection.items.ConstraintCheckerKISSDetailsItem;
+import org.fortiss.tooling.kernel.service.IConstraintCheckerService;
+
+import javafx.scene.Node;
+import javafx.scene.control.ContextMenu;
+
+/**
+ * Introspection UI handler for {@link IIntrospectionItem}s provided by
+ * {@link IConstraintCheckerService}.
+ * 
+ * @author hoelzl
+ */
+public final class ConstraintCheckerKISSDetailsUIHandler extends KISSDetailsUIHandlerBase {
+	/** {@inheritDoc} */
+	@Override
+	public Node createDisplayControl() {
+		String h = "Type to search registered checkers:";
+		String f = "Number of registered constraint checkers: " + countCheckers();
+		return createFilteredTree(h, f);
+	}
+
+	/** Computes the number of constraint checkers. */
+	private int countCheckers() {
+		int count = 0;
+		for(Class<?> c : getRootObject().getHandlerKeyClasses()) {
+			count += getRootObject().getHandlerList(c).size();
+		}
+		return count;
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected void createTreeColumns(DynamicTreeTableViewer<Object> tree) {
+		tree.addColumn("Model Element / Checker", 400);
+		tree.addColumn("Model Element Class", 400);
+		tree.addColumn("Constraint Checker Implementation Class", 400);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected DynamicTreeContentProviderBase<Object> createContentProvider() {
+		return new DynamicTreeContentProviderBase<Object>() {
+			/** {@inheritDoc} */
+			@Override
+			protected Collection<? extends Object> getChildren(Object parent) {
+				if(parent == getRootObject()) {
+					return getRootObject().getHandlerKeyClasses();
+				} else if(parent instanceof Class) {
+					return getRootObject().getHandlerList((Class<?>)parent);
+				}
+				return null;
+			}
+		};
+	}
+
+	/** {@inheritDoc} */
+	@SuppressWarnings("unchecked")
+	@Override
+	protected DynamicTreeTableUIProviderBase<Object> createUIProvider() {
+		return new DynamicTreeTableUIProviderBase<Object>() {
+			@Override
+			public Node getIconNode(Object element, int column) {
+				return null;
+			}
+
+			@Override
+			public String getLabel(Object data, int column) {
+				if(data instanceof Class) {
+					switch(column) {
+						case 0:
+							return ((Class<?>)data).getSimpleName();
+						case 1:
+							return ((Class<?>)data).getName();
+					}
+				} else if(data instanceof IConstraintChecker) {
+					IConstraintChecker<EObject> icc = (IConstraintChecker<EObject>)data;
+					switch(column) {
+						case 0:
+							return icc.getClass().getSimpleName();
+						case 2:
+							return icc.getClass().getName();
+					}
+				}
+				return null;
+			}
+
+			/** {@inheritDoc} */
+			@Override
+			public ContextMenu createContextMenu(Object element, int column) {
+				if(element instanceof Class) {
+					return createCopyClassNameMenuItem((Class<?>)element);
+				}
+				if(element instanceof IConstraintChecker<?>) {
+					return createCopyClassNameMenuItem(element.getClass());
+				}
+				return null;
+			}
+		};
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected ConstraintCheckerKISSDetailsItem getRootObject() {
+		return (ConstraintCheckerKISSDetailsItem)dataItem;
+	}
+}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/ContextMenuKISSDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/ContextMenuKISSDetailsUIHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..6e329ca7f4e4919285a743cf49fba90e3789fcab
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/ContextMenuKISSDetailsUIHandler.java
@@ -0,0 +1,113 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2018 fortiss GmbH.
+ * 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ * which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ *******************************************************************************/
+package org.fortiss.tooling.kernel.ui.introspection.details.handler;
+
+import static java.util.Arrays.asList;
+import static java.util.stream.Collectors.toList;
+
+import java.util.Collection;
+
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableUIProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer;
+import org.fortiss.tooling.kernel.introspection.IIntrospectionItem;
+import org.fortiss.tooling.kernel.service.IConstraintCheckerService;
+import org.fortiss.tooling.kernel.ui.extension.IContextMenuContributor;
+import org.fortiss.tooling.kernel.ui.introspection.items.ContextMenuKISSDetailsItem;
+import org.fortiss.tooling.kernel.ui.service.IContextMenuService;
+
+import javafx.scene.Node;
+import javafx.scene.control.ContextMenu;
+
+/**
+ * Introspection UI handler for {@link IIntrospectionItem}s provided by
+ * {@link IConstraintCheckerService}.
+ * 
+ * @author hoelzl
+ */
+public final class ContextMenuKISSDetailsUIHandler extends KISSDetailsUIHandlerBase {
+	/** {@inheritDoc} */
+	@Override
+	public Node createDisplayControl() {
+		String h = "Type to search registered menu contributors:";
+		String f = "Number of registered menu contributors: " +
+				getRootObject().getHandlerList().size();
+		return createFilteredTree(h, f);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected void createTreeColumns(DynamicTreeTableViewer<Object> tree) {
+		tree.addColumn("Menu Section", 400);
+		tree.addColumn("Menu Provider Class", 500);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected DynamicTreeContentProviderBase<Object> createContentProvider() {
+		return new DynamicTreeContentProviderBase<Object>() {
+			/** {@inheritDoc} */
+			@Override
+			protected Collection<? extends Object> getChildren(Object parent) {
+				if(parent == getRootObject()) {
+					return asList(IContextMenuService.MENU_SECTION_IDS);
+				} else if(parent instanceof String) {
+					return getRootObject().getHandlerList().stream()
+							.filter(h -> parent.equals(h.getMenuSectionID())).collect(toList());
+				}
+				return null;
+			}
+		};
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected DynamicTreeTableUIProviderBase<Object> createUIProvider() {
+		return new DynamicTreeTableUIProviderBase<Object>() {
+			@Override
+			public Node getIconNode(Object element, int column) {
+				return null;
+			}
+
+			@Override
+			public String getLabel(Object data, int column) {
+				if(data instanceof String && column == 0) {
+					return (String)data;
+				} else if(data instanceof IContextMenuContributor) {
+					IContextMenuContributor icc = (IContextMenuContributor)data;
+					switch(column) {
+						case 0:
+							return icc.getClass().getSimpleName();
+						case 1:
+							return icc.getClass().getName();
+					}
+				}
+				return null;
+			}
+
+			/** {@inheritDoc} */
+			@Override
+			public ContextMenu createContextMenu(Object element, int column) {
+				if(element instanceof IContextMenuContributor) {
+					return createCopyClassNameMenuItem(element.getClass());
+				}
+				return null;
+			}
+		};
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected ContextMenuKISSDetailsItem getRootObject() {
+		return (ContextMenuKISSDetailsItem)dataItem;
+	}
+}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/EObjectAware2KISSDetailsUIHandlerBase.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/EObjectAware2KISSDetailsUIHandlerBase.java
new file mode 100644
index 0000000000000000000000000000000000000000..301276017de4db9bdd7fb90df09eaba8342a9e26
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/EObjectAware2KISSDetailsUIHandlerBase.java
@@ -0,0 +1,183 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2018 fortiss GmbH.
+ * 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ * which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ *******************************************************************************/
+package org.fortiss.tooling.kernel.ui.introspection.details.handler;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.List;
+
+import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.apache.commons.lang3.tuple.Pair;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableUIProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer;
+import org.fortiss.tooling.kernel.introspection.items.EObjectAware2KISSDetailsItemBase;
+
+import javafx.scene.Node;
+import javafx.scene.control.ContextMenu;
+
+/**
+ * Base class for details UI implementations with filtered tree viewer.
+ * 
+ * @author hoelzl
+ */
+public abstract class EObjectAware2KISSDetailsUIHandlerBase extends KISSDetailsUIHandlerBase {
+
+	/** Creates the default tree columns. */
+	protected final void createDefaultTreeColumns(DynamicTreeTableViewer<Object> viewer,
+			String text0, int width0, String text1, int width1, String text2, int width2,
+			String text3, int width3) {
+		viewer.addColumn(text0, width0);
+		viewer.addColumn(text1, width1);
+		viewer.addColumn(text2, width2);
+		viewer.addColumn(text3, width3);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected DynamicTreeTableUIProviderBase<Object> createUIProvider() {
+		return new EObjectAware2TableLabelProvider();
+	}
+
+	/** Table label provider for handler registrations with two classes. */
+	protected class EObjectAware2TableLabelProvider extends DynamicTreeTableUIProviderBase<Object> {
+		/** {@inheritDoc} */
+		@Override
+		public String getLabel(Object element, int columnIndex) {
+			if(element instanceof Class) {
+				return columnIndex == 0 ? ((Class<?>)element).getSimpleName() : "";
+			}
+			if(element instanceof Pair) {
+				Pair<?, ?> pair = (Pair<?, ?>)element;
+				if(pair.getLeft() instanceof Class) {
+					Class<?> c = (Class<?>)((Pair<?, ?>)element).getRight();
+					return columnIndex == 0 ? c.getSimpleName() : "";
+				}
+				if(pair.getLeft() != null) {
+					Object provider = pair.getLeft();
+					Pair<?, ?> regClasses = (Pair<?, ?>)pair.getRight();
+					Class<?> sourceClass = (Class<?>)regClasses.getLeft();
+					Class<?> targetClass = (Class<?>)regClasses.getRight();
+					switch(columnIndex) {
+						case 0:
+							return provider.getClass().getSimpleName();
+						case 1:
+							return provider.getClass().getName();
+						case 2:
+							return sourceClass.getName();
+						case 3:
+							return targetClass.getName();
+					}
+				}
+			}
+			return "";
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public Node getIconNode(Object element, int column) {
+			return null;
+		}
+
+		/** {@inheritDoc} */
+		@Override
+		public ContextMenu createContextMenu(Object element, int column) {
+			if(element instanceof Pair) {
+				Pair<?, ?> pair = (Pair<?, ?>)element;
+				if(pair.getLeft() != null && pair.getRight() instanceof Pair) {
+					Pair<?, ?> rightPair = (Pair<?, ?>)pair.getRight();
+					switch(column) {
+						case 0:
+							break;
+						case 1:
+							Class<?> handlerClass = pair.getLeft().getClass();
+							return createCopyClassNameMenuItem(handlerClass);
+						case 2:
+							Class<?> srcClass = (Class<?>)rightPair.getLeft();
+							return createCopyClassNameMenuItem(srcClass);
+						case 3:
+							Class<?> trgClass = (Class<?>)rightPair.getRight();
+							return createCopyClassNameMenuItem(trgClass);
+						default:
+					}
+				}
+			}
+			return null;
+		}
+	}
+
+	/** Tree content provider for handler registrations with two classes. */
+	protected static abstract class EObjectAware2TreeContentProviderBase
+			extends DynamicTreeContentProviderBase<Object> {
+
+		/** Returns the input object for this content provider. */
+		protected abstract EObjectAware2KISSDetailsItemBase<?> getInputObject();
+
+		/** {@inheritDoc} */
+		@Override
+		public Collection<? extends Object> getChildren(Object parentElement) {
+			if(parentElement == getInputObject()) {
+				return getInputObject().getFirstHandlerKeyClasses();
+			}
+			if(parentElement instanceof Class<?>) {
+				Class<?> firstClass = (Class<?>)parentElement;
+				Collection<Class<?>> secondaryClasses =
+						getInputObject().getSecondHandlerKeyClasses(firstClass);
+				if(secondaryClasses == null || secondaryClasses.isEmpty()) {
+					return null;
+				}
+				Collection<Pair<?, ?>> pairs = new ArrayList<Pair<?, ?>>(secondaryClasses.size());
+				for(Class<?> secondary : secondaryClasses) {
+					pairs.add(new ImmutablePair<Class<?>, Class<?>>(firstClass, secondary));
+				}
+				return pairs;
+			}
+			if(parentElement instanceof Pair) {
+				Pair<?, ?> pair = (Pair<?, ?>)parentElement;
+				if(pair.getLeft() instanceof Class) {
+					Class<?> first = (Class<?>)pair.getLeft();
+					Class<?> second = (Class<?>)pair.getRight();
+					List<?> handlerList = getInputObject().getHandlerList(first, second);
+					if(handlerList == null || handlerList.isEmpty()) {
+						return null;
+					}
+					Collection<Pair<?, ?>> pairs = new ArrayList<Pair<?, ?>>(handlerList.size());
+					for(Object handler : handlerList) {
+						pairs.add(new ImmutablePair<Object, Pair<?, ?>>(handler, pair));
+					}
+					return pairs;
+				}
+				// no children for handlers
+			}
+			return null;
+		}
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected Comparator<Object> createSorter() {
+		return (o1, o2) -> {
+			if(o1 instanceof Pair && o2 instanceof Pair) {
+				Pair<?, ?> pair1 = (Pair<?, ?>)o1;
+				Pair<?, ?> pair2 = (Pair<?, ?>)o2;
+				o1 = pair1.getLeft().getClass();
+				o2 = pair2.getLeft().getClass();
+				// fall through to next if statement
+			}
+			if(o1 instanceof Class && o2 instanceof Class) {
+				return ((Class<?>)o1).getSimpleName().compareTo(((Class<?>)o2).getSimpleName());
+			}
+			return 0;
+		};
+	}
+}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/EObjectAwareKISSDetailsUIHandlerBase.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/EObjectAwareKISSDetailsUIHandlerBase.java
new file mode 100644
index 0000000000000000000000000000000000000000..ff5a70e09a5a556cd7848179ca07031c87a3a17e
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/EObjectAwareKISSDetailsUIHandlerBase.java
@@ -0,0 +1,165 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2018 fortiss GmbH.
+ * 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ * which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ *******************************************************************************/
+package org.fortiss.tooling.kernel.ui.introspection.details.handler;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.List;
+
+import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.apache.commons.lang3.tuple.Pair;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableUIProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer;
+import org.fortiss.tooling.kernel.introspection.items.EObjectAwareKISSDetailsItemBase;
+
+import javafx.scene.Node;
+import javafx.scene.control.ContextMenu;
+
+/**
+ * Base class for details UI implementations with filtered tree viewer.
+ * 
+ * @author hoelzl
+ */
+public abstract class EObjectAwareKISSDetailsUIHandlerBase extends KISSDetailsUIHandlerBase {
+
+	/** Creates the default tree columns. */
+	protected final void createDefaultTreeColumns(DynamicTreeTableViewer<Object> viewer,
+			String text0, int width0, String text1, int width1, String text2, int width2) {
+		viewer.addColumn(text0, width0);
+		viewer.addColumn(text1, width1);
+		viewer.addColumn(text2, width2);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected DynamicTreeTableUIProviderBase<Object> createUIProvider() {
+		return new DynamicTreeTableUIProviderBase<Object>() {
+			@Override
+			public String getLabel(Object element, int column) {
+				if(element instanceof Class) {
+					return column == 0 ? ((Class<?>)element).getSimpleName() : "";
+				}
+				if(element instanceof Pair) {
+					Pair<?, ?> pair = (Pair<?, ?>)element;
+					if(pair.getLeft() != null) {
+						Object provider = pair.getLeft();
+						Class<?> regClass = (Class<?>)pair.getRight();
+						switch(column) {
+							case 0:
+								return provider.getClass().getSimpleName();
+							case 1:
+								return provider.getClass().getName();
+							case 2:
+								return regClass.getName();
+						}
+					}
+				}
+				return "";
+			}
+
+			@Override
+			public Node getIconNode(Object element, int column) {
+				return null;
+			}
+
+			/** {@inheritDoc} */
+			@Override
+			public ContextMenu createContextMenu(Object element, int column) {
+				if(element instanceof Pair) {
+					Pair<?, ?> pair = (Pair<?, ?>)element;
+					if(pair.getLeft() == null) {
+						return null;
+					}
+					Object provider = pair.getLeft();
+					Class<?> regClass = (Class<?>)pair.getRight();
+					switch(column) {
+						case 0:
+							break;
+						case 1:
+							return createCopyClassNameMenuItem(provider.getClass());
+						case 2:
+							return createCopyClassNameMenuItem(regClass);
+						default:
+					}
+				}
+				return null;
+			}
+		};
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected boolean testObjectFilter(String filterExpression, Object element) {
+		Class<?> toMatch = null;
+		if(element instanceof Class) {
+			toMatch = (Class<?>)element;
+		} else if(element instanceof Pair) {
+			Pair<?, ?> pair = (Pair<?, ?>)element;
+			if(pair.getLeft() != null) {
+				toMatch = pair.getLeft().getClass();
+			}
+		}
+		if(toMatch == null) {
+			return false;
+		}
+		filterExpression = filterExpressionSanityCheck(filterExpression);
+		return toMatch.getSimpleName().matches(filterExpression);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected Comparator<Object> createSorter() {
+		return (o1, o2) -> {
+			if(o1 instanceof Pair && o2 instanceof Pair) {
+				Pair<?, ?> pair1 = (Pair<?, ?>)o1;
+				Pair<?, ?> pair2 = (Pair<?, ?>)o2;
+				o1 = pair1.getLeft().getClass();
+				o2 = pair2.getLeft().getClass();
+				// fall through to next if statement
+			}
+			if(o1 instanceof Class && o2 instanceof Class) {
+				return ((Class<?>)o1).getSimpleName().compareTo(((Class<?>)o2).getSimpleName());
+			}
+			return 0;
+		};
+	}
+
+	/** Tree content provider for handler registrations with two classes. */
+	protected static abstract class EObjectAwareTreeContentProviderBase
+			extends DynamicTreeContentProviderBase<Object> {
+		/** Returns the input object for this content provider. */
+		protected abstract EObjectAwareKISSDetailsItemBase<?> getInputObject();
+
+		/** {@inheritDoc} */
+		@Override
+		public Collection<? extends Object> getChildren(Object parentElement) {
+			if(parentElement == getInputObject()) {
+				return getInputObject().getHandlerKeyClasses();
+			}
+			if(parentElement instanceof Class<?>) {
+				Class<?> regClass = (Class<?>)parentElement;
+				List<?> handlerList = getInputObject().getHandlerList(regClass);
+				if(handlerList == null || handlerList.isEmpty()) {
+					return null;
+				}
+				Collection<Pair<?, ?>> pairs = new ArrayList<Pair<?, ?>>(handlerList.size());
+				for(Object handler : handlerList) {
+					pairs.add(new ImmutablePair<Object, Class<?>>(handler, regClass));
+				}
+				return pairs;
+			}
+			return null;
+		}
+	}
+}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/EclipseResourceStorageProviderIntrospectionDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/EclipseResourceStorageKISSDetailsUIHandler.java
similarity index 53%
rename from org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/EclipseResourceStorageProviderIntrospectionDetailsUIHandler.java
rename to org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/EclipseResourceStorageKISSDetailsUIHandler.java
index 987f882a82cfa20af08e85629e2767c0ebab042f..b4a8d448631af61f79196e2b225aec586a77179d 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/EclipseResourceStorageProviderIntrospectionDetailsUIHandler.java
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/EclipseResourceStorageKISSDetailsUIHandler.java
@@ -13,54 +13,48 @@
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.details.handler;
+package org.fortiss.tooling.kernel.ui.introspection.details.handler;
+
+import static java.util.Arrays.asList;
+
+import java.util.Collection;
 
-import org.conqat.ide.commons.ui.jface.TreeContentProviderBase;
 import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TableLabelProviderBase;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.ui.dialogs.PatternFilter;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableUIProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer;
 import org.fortiss.tooling.kernel.extension.IEclipseResourcePostLoadProvider;
 import org.fortiss.tooling.kernel.extension.IEclipseResourceStorageLocationProvider;
 import org.fortiss.tooling.kernel.extension.data.ModelStorageError;
-import org.fortiss.tooling.kernel.introspection.items.EclipseResourceStorageServiceIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.EclipseResourceStorageKISSDetailsItem;
+
+import javafx.scene.Node;
+import javafx.scene.control.ContextMenu;
 
 /**
- * Introspection UI handler for the {@link EclipseResourceStorageServiceIntrospectionDetailsItem}s.
+ * Introspection UI handler for the {@link EclipseResourceStorageKISSDetailsItem}s.
  * 
  * @author hoelzl
  */
-public final class EclipseResourceStorageProviderIntrospectionDetailsUIHandler
-		extends IntrospectionDetailsUIHandlerBase {
+public final class EclipseResourceStorageKISSDetailsUIHandler
+		extends KISSDetailsUIHandlerBase {
 
 	/** {@inheritDoc} */
 	@Override
-	public Control createComposite(ScrolledComposite parent) {
+	public Node createDisplayControl() {
 		String heading = "Type to search registered Eclipse resource providers:";
 		String footer = "Number of currently registered storage providers: " +
-				getInputObject().getStorageProviderList().size() + " (providing " +
-				getInputObject().getLoadedFiles().size() + " file[s], " +
-				getInputObject().getErrorFiles().size() + " erroneous).";
-		return createFilteredTreeInTabFolder(parent, heading, footer, "Registered Providers");
+				getRootObject().getStorageProviderList().size() + " (providing " +
+				getRootObject().getLoadedFiles().size() + " file[s], " +
+				getRootObject().getErrorFiles().size() + " erroneous).";
+		return createFilteredTree(heading, footer);
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	protected void createTreeColumns(Tree tree) {
-		TreeColumn col0 = new TreeColumn(tree, SWT.LEFT);
-		col0.setText("Category / Provider / File");
-		col0.setWidth(450);
-
-		TreeColumn col1 = new TreeColumn(tree, SWT.LEFT);
-		col1.setText("Implementation Class / Path / Storage Error Message");
-		col1.setWidth(400);
+	protected void createTreeColumns(DynamicTreeTableViewer<Object> tree) {
+		tree.addColumn("Category / Provider / File", 450);
+		tree.addColumn("Implementation Class / Path / Storage Error Message", 400);
 	}
 
 	/** String array of root categories. */
@@ -69,22 +63,22 @@ public final class EclipseResourceStorageProviderIntrospectionDetailsUIHandler
 
 	/** {@inheritDoc} */
 	@Override
-	protected ITreeContentProvider createContentProvider() {
-		return new TreeContentProviderBase() {
+	protected DynamicTreeContentProviderBase<Object> createContentProvider() {
+		return new DynamicTreeContentProviderBase<Object>() {
 
 			@Override
-			public Object[] getChildren(Object parentElement) {
-				if(parentElement == getInputObject()) {
-					return ROOT_CATEGORY;
+			public Collection<? extends Object> getChildren(Object parentElement) {
+				if(parentElement == getRootObject()) {
+					return asList(ROOT_CATEGORY);
 				}
 				if(ROOT_CATEGORY[0].equals(parentElement)) {
-					return getInputObject().getStorageProviderList().toArray();
+					return getRootObject().getStorageProviderList();
 				}
 				if(ROOT_CATEGORY[1].equals(parentElement)) {
-					return getInputObject().getLoadedFiles().toArray();
+					return getRootObject().getLoadedFiles();
 				}
 				if(ROOT_CATEGORY[2].equals(parentElement)) {
-					return getInputObject().getErrorFiles().toArray();
+					return getRootObject().getErrorFiles();
 				}
 				return null;
 			}
@@ -93,10 +87,10 @@ public final class EclipseResourceStorageProviderIntrospectionDetailsUIHandler
 
 	/** {@inheritDoc} */
 	@Override
-	protected ITableLabelProvider createLabelProvider() {
-		return new TableLabelProviderBase() {
+	protected DynamicTreeTableUIProviderBase<Object> createUIProvider() {
+		return new DynamicTreeTableUIProviderBase<Object>() {
 			@Override
-			public String getColumnText(Object parentElement, int columnIndex) {
+			public String getLabel(Object parentElement, int columnIndex) {
 				if(parentElement instanceof IEclipseResourceStorageLocationProvider ||
 						parentElement instanceof IEclipseResourcePostLoadProvider) {
 					return columnIndex == 0 ? parentElement.getClass().getSimpleName()
@@ -115,31 +109,18 @@ public final class EclipseResourceStorageProviderIntrospectionDetailsUIHandler
 				}
 				return "";
 			}
-		};
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected PatternFilter createPatternFilter() {
-		return new TableViewerPatternFilter();
-	}
 
-	/** {@inheritDoc} */
-	@Override
-	protected EclipseResourceStorageServiceIntrospectionDetailsItem getInputObject() {
-		return (EclipseResourceStorageServiceIntrospectionDetailsItem)dataItem;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected boolean testSelection(Object selection) {
-		return selection instanceof IEclipseResourceStorageLocationProvider ||
-				selection instanceof IEclipseResourcePostLoadProvider;
+			/** {@inheritDoc} */
+			@Override
+			public ContextMenu createContextMenu(Object element, int column) {
+				return createCopyClassNameMenuItem(element.getClass());
+			}
+		};
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	protected void populateContextMenu(Object selection, MenuManager mgr) {
-		mgr.add(createCopyClassNameAction(selection.getClass()));
+	protected EclipseResourceStorageKISSDetailsItem getRootObject() {
+		return (EclipseResourceStorageKISSDetailsItem)dataItem;
 	}
 }
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/EditPartFactoryServiceIntrospectionDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/EditPartFactoryKISSDetailsUIHandler.java
similarity index 60%
rename from org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/EditPartFactoryServiceIntrospectionDetailsUIHandler.java
rename to org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/EditPartFactoryKISSDetailsUIHandler.java
index e14b000ffface065dd58f7a9799cceb74acd095e..6f04164781420e096cfbafa889449b037df11df2 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/EditPartFactoryServiceIntrospectionDetailsUIHandler.java
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/EditPartFactoryKISSDetailsUIHandler.java
@@ -13,55 +13,55 @@
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.details.handler;
+package org.fortiss.tooling.kernel.ui.introspection.details.handler;
 
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Tree;
-import org.fortiss.tooling.kernel.introspection.items.EObjectAwareIntrospectionDetailsItemBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer;
+import org.fortiss.tooling.kernel.introspection.items.EObjectAwareKISSDetailsItemBase;
 import org.fortiss.tooling.kernel.ui.internal.EditPartFactoryService;
-import org.fortiss.tooling.kernel.ui.internal.introspection.details.DetailsUIHandlerBase;
-import org.fortiss.tooling.kernel.ui.internal.introspection.items.EditPartFactoryServiceIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.ui.introspection.details.DetailsUIHandlerBase;
+import org.fortiss.tooling.kernel.ui.introspection.items.EditPartFactoryKISSDetailsItem;
+
+import javafx.scene.Node;
 
 /**
  * {@link DetailsUIHandlerBase} for {@link EditPartFactoryService}.
  * 
  * @author hoelzl
  */
-public class EditPartFactoryServiceIntrospectionDetailsUIHandler
-		extends EObjectAwareIntrospectionDetailsUIHandlerBase {
+public class EditPartFactoryKISSDetailsUIHandler
+		extends EObjectAwareKISSDetailsUIHandlerBase {
 
 	/** {@inheritDoc} */
 	@Override
-	public Control createComposite(ScrolledComposite parent) {
+	public Node createDisplayControl() {
 		String heading = "Type to search registered editpart factories:";
 		String footer = "Number of currently registered editpart factories: " +
-				getInputObject().countHandlers();
-		return createFilteredTreeInTabFolder(parent, heading, footer, "Registered Factories");
+				getRootObject().countHandlers();
+		return createFilteredTree(heading, footer);
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	protected void createTreeColumns(Tree tree) {
+	protected void createTreeColumns(DynamicTreeTableViewer<Object> tree) {
 		createDefaultTreeColumns(tree, "Class / Factory", 250, "Factory Class", 400,
 				"EObject Class", 400);
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	protected ITreeContentProvider createContentProvider() {
+	protected DynamicTreeContentProviderBase<Object> createContentProvider() {
 		return new EObjectAwareTreeContentProviderBase() {
 			@Override
-			protected EObjectAwareIntrospectionDetailsItemBase<?> getInputObject() {
-				return EditPartFactoryServiceIntrospectionDetailsUIHandler.this.getInputObject();
+			protected EObjectAwareKISSDetailsItemBase<?> getInputObject() {
+				return EditPartFactoryKISSDetailsUIHandler.this.getRootObject();
 			}
 		};
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	protected EditPartFactoryServiceIntrospectionDetailsItem getInputObject() {
-		return (EditPartFactoryServiceIntrospectionDetailsItem)dataItem;
+	protected EditPartFactoryKISSDetailsItem getRootObject() {
+		return (EditPartFactoryKISSDetailsItem)dataItem;
 	}
 }
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/ElementCompositorKISSDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/ElementCompositorKISSDetailsUIHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..9d416344ef4ae563a3d17ed81344c2b11bea1aa7
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/ElementCompositorKISSDetailsUIHandler.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2018 fortiss GmbH.
+ * 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ * which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ *******************************************************************************/
+package org.fortiss.tooling.kernel.ui.introspection.details.handler;
+
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer;
+import org.fortiss.tooling.kernel.introspection.items.EObjectAwareKISSDetailsItemBase;
+import org.fortiss.tooling.kernel.introspection.items.ElementCompositorKISSDetailsItem;
+import org.fortiss.tooling.kernel.service.IElementCompositorService;
+
+import javafx.scene.Node;
+
+/**
+ * Introspection UI handler for the {@link IElementCompositorService}.
+ * 
+ * @author hoelzl
+ */
+public final class ElementCompositorKISSDetailsUIHandler
+		extends EObjectAwareKISSDetailsUIHandlerBase {
+	/** {@inheritDoc} */
+	@Override
+	public Node createDisplayControl() {
+		String heading = "Type to search registered element compositors:";
+		String footer = "Number of currently registered element compositors: " +
+				getRootObject().countHandlers();
+		return createFilteredTree(heading, footer);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected void createTreeColumns(DynamicTreeTableViewer<Object> viewer) {
+		createDefaultTreeColumns(viewer, "Class / Compositor", 250, "Compositor Class", 400,
+				"EObject Class", 400);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected DynamicTreeContentProviderBase<Object> createContentProvider() {
+		return new EObjectAwareTreeContentProviderBase() {
+			@Override
+			protected EObjectAwareKISSDetailsItemBase<?> getInputObject() {
+				return ElementCompositorKISSDetailsUIHandler.this.getRootObject();
+			}
+		};
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected ElementCompositorKISSDetailsItem getRootObject() {
+		return (ElementCompositorKISSDetailsItem)dataItem;
+	}
+}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/KISSDetailsUIHandlerBase.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/KISSDetailsUIHandlerBase.java
new file mode 100644
index 0000000000000000000000000000000000000000..5008ec4bd54df3f7dbd91463a859dd955db5532b
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/KISSDetailsUIHandlerBase.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2018 fortiss GmbH.
+ * 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ * which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ *******************************************************************************/
+package org.fortiss.tooling.kernel.ui.introspection.details.handler;
+
+import static java.util.Comparator.comparing;
+import static org.fortiss.tooling.kernel.ui.introspection.ClipboardCopyHelper.createCopyClassNameMenu;
+
+import java.util.Comparator;
+
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableUIProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer;
+import org.fortiss.tooling.kernel.ui.introspection.details.DetailsUIHandlerBase;
+
+import javafx.scene.Node;
+import javafx.scene.control.ContextMenu;
+import javafx.scene.control.Label;
+import javafx.scene.control.TextField;
+import javafx.scene.layout.BorderPane;
+
+/**
+ * Base class for details UI implementations with filtered tree viewer.
+ * 
+ * @author hoelzl
+ */
+public abstract class KISSDetailsUIHandlerBase extends DetailsUIHandlerBase {
+	/** {@inheritDoc} */
+	@Override
+	public Node createDisplayControl() {
+		return new Label("No details available!");
+	}
+
+	/** Creates the filtered tree control. */
+	protected final BorderPane createFilteredTree(String searchFieldAdvice, String footerLabel) {
+		BorderPane pane = new BorderPane();
+		DynamicTreeTableViewer<Object> treeView = new DynamicTreeTableViewer<Object>(
+				getRootObject(), false, 0, createContentProvider(), createUIProvider());
+		createTreeColumns(treeView);
+		pane.setCenter(treeView.getControl());
+		if(searchFieldAdvice != null) {
+			TextField searchField = new TextField();
+			searchField.setPromptText(searchFieldAdvice);
+			searchField.textProperty().addListener((obs, oldValue, newValue) -> {
+				treeView.update();
+			});
+			pane.setTop(searchField);
+		}
+		if(footerLabel != null) {
+			Label footer = new Label(footerLabel);
+			pane.setBottom(footer);
+		}
+		return pane;
+	}
+
+	/** Returns the root object for the tree-table viewer. */
+	protected abstract Object getRootObject();
+
+	/** Returns the content provider for the tree-table viewer. */
+	protected abstract DynamicTreeContentProviderBase<Object> createContentProvider();
+
+	/** Returns the label provider for the tree-table viewer. */
+	protected abstract DynamicTreeTableUIProviderBase<Object> createUIProvider();
+
+	/** Returns the Comparator used to sort the elements in the viewer. */
+	protected Comparator<Object> createSorter() {
+		return comparing(Object::toString);
+	}
+
+	/**
+	 * Tests the given object's toString representation for inclusion under the given text filter
+	 * expression. The filter expression supports wildcard matching with {@code '?'} for a single
+	 * character and {@code '*'} for arbitrary many characters.
+	 */
+	protected boolean testObjectFilter(String filterExpression, Object dataItem) {
+		if(dataItem == null) {
+			return false;
+		}
+		filterExpression = filterExpressionSanityCheck(filterExpression);
+		return dataItem.toString().matches(filterExpression);
+	}
+
+	/** Tests the given filter expression and replaces it if necessary. */
+	protected String filterExpressionSanityCheck(String filterExpression) {
+		if(filterExpression == null || filterExpression.trim().equals("")) {
+			filterExpression = ".*";
+		} else {
+			if(!filterExpression.endsWith("*")) {
+				filterExpression += '*';
+			}
+			if(!filterExpression.startsWith("*")) {
+				filterExpression = '*' + filterExpression;
+			}
+			filterExpression = filterExpression.replace("?", ".?").replace("*", ".*");
+		}
+		return filterExpression;
+	}
+
+	/** Creates the columns for the tree-table viewer. */
+	protected abstract void createTreeColumns(DynamicTreeTableViewer<Object> viewer);
+
+	/** Creates a context menu with an entry to copy the given String. */
+	protected final ContextMenu createCopyClassNameMenuItem(Class<?> toCopy) {
+		return createCopyClassNameMenu(toCopy);
+	}
+}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/LibraryServiceIntrospectionDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/LibraryKISSDetailsUIHandler.java
similarity index 60%
rename from org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/LibraryServiceIntrospectionDetailsUIHandler.java
rename to org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/LibraryKISSDetailsUIHandler.java
index a17e31bfdb1215b9d50279a37165fac6db0733ea..47fe04336719264f697847671c7ec6fdacaf71ba 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/LibraryServiceIntrospectionDetailsUIHandler.java
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/LibraryKISSDetailsUIHandler.java
@@ -13,54 +13,54 @@
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.details.handler;
+package org.fortiss.tooling.kernel.ui.introspection.details.handler;
 
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Tree;
-import org.fortiss.tooling.kernel.introspection.items.EObjectAwareIntrospectionDetailsItemBase;
-import org.fortiss.tooling.kernel.introspection.items.LibraryServiceIntrospectionDetailsItem;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer;
+import org.fortiss.tooling.kernel.introspection.items.EObjectAwareKISSDetailsItemBase;
+import org.fortiss.tooling.kernel.introspection.items.LibraryKISSDetailsItem;
 import org.fortiss.tooling.kernel.service.ILibraryService;
 
+import javafx.scene.Node;
+
 /**
- * {@link IntrospectionDetailsUIHandlerBase} for {@link ILibraryService}.
+ * {@link KISSDetailsUIHandlerBase} for {@link ILibraryService}.
  * 
  * @author hoelzl
  */
-public final class LibraryServiceIntrospectionDetailsUIHandler
-		extends EObjectAwareIntrospectionDetailsUIHandlerBase {
+public final class LibraryKISSDetailsUIHandler
+		extends EObjectAwareKISSDetailsUIHandlerBase {
 
 	/** {@inheritDoc} */
 	@Override
-	public Control createComposite(ScrolledComposite parent) {
+	public Node createDisplayControl() {
 		String heading = "Type to search registered library element handler:";
 		String footer = "Number of currently registered library element handlers: " +
-				getInputObject().countHandlers();
-		return createFilteredTreeInTabFolder(parent, heading, footer, "Registered Handlers");
+				getRootObject().countHandlers();
+		return createFilteredTree(heading, footer);
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	protected void createTreeColumns(Tree tree) {
+	protected void createTreeColumns(DynamicTreeTableViewer<Object> tree) {
 		createDefaultTreeColumns(tree, "Class / Provider", 250, "Provider Class", 400,
 				"EObject Class", 400);
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	protected ITreeContentProvider createContentProvider() {
+	protected DynamicTreeContentProviderBase<Object> createContentProvider() {
 		return new EObjectAwareTreeContentProviderBase() {
 			@Override
-			protected EObjectAwareIntrospectionDetailsItemBase<?> getInputObject() {
-				return LibraryServiceIntrospectionDetailsUIHandler.this.getInputObject();
+			protected EObjectAwareKISSDetailsItemBase<?> getInputObject() {
+				return LibraryKISSDetailsUIHandler.this.getRootObject();
 			}
 		};
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	protected LibraryServiceIntrospectionDetailsItem getInputObject() {
-		return (LibraryServiceIntrospectionDetailsItem)dataItem;
+	protected LibraryKISSDetailsItem getRootObject() {
+		return (LibraryKISSDetailsItem)dataItem;
 	}
 }
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/MigrationKISSDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/MigrationKISSDetailsUIHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..eff83731e0115c0dff73b21438199e20b645ce39
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/MigrationKISSDetailsUIHandler.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2018 fortiss GmbH.
+ * 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ * which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ *******************************************************************************/
+package org.fortiss.tooling.kernel.ui.introspection.details.handler;
+
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer;
+import org.fortiss.tooling.kernel.introspection.items.EObjectAwareKISSDetailsItemBase;
+import org.fortiss.tooling.kernel.introspection.items.MigrationKISSDetailsItem;
+import org.fortiss.tooling.kernel.service.IMigrationService;
+import org.fortiss.tooling.kernel.ui.introspection.details.DetailsUIHandlerBase;
+
+import javafx.scene.Node;
+
+/** 
+ * {@link DetailsUIHandlerBase} for {@link IMigrationService}.
+ * 
+ * @author hoelzl
+ */
+public class MigrationKISSDetailsUIHandler
+		extends EObjectAwareKISSDetailsUIHandlerBase {
+	/** {@inheritDoc} */
+	@Override
+	public Node createDisplayControl() {
+		String heading = "Type to search registered migration providers:";
+		String footer = "Number of currently registered migration providers: " +
+				getRootObject().countHandlers();
+		return createFilteredTree(heading, footer);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected void createTreeColumns(DynamicTreeTableViewer<Object> tree) {
+		createDefaultTreeColumns(tree, "Class / Provider", 250, "Provider Class", 400,
+				"EObject Class", 400);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected DynamicTreeContentProviderBase<Object> createContentProvider() {
+		return new EObjectAwareTreeContentProviderBase() {
+			@Override
+			protected EObjectAwareKISSDetailsItemBase<?> getInputObject() {
+				return MigrationKISSDetailsUIHandler.this.getRootObject();
+			}
+		};
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected MigrationKISSDetailsItem getRootObject() {
+		return (MigrationKISSDetailsItem)dataItem;
+	}
+}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/ModelEditorBindingKISSDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/ModelEditorBindingKISSDetailsUIHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..324aa57296919b09c882ab415b90507267c5f75e
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/ModelEditorBindingKISSDetailsUIHandler.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2018 fortiss GmbH.
+ * 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ * which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ *******************************************************************************/
+package org.fortiss.tooling.kernel.ui.introspection.details.handler;
+
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer;
+import org.fortiss.tooling.kernel.introspection.items.EObjectAwareKISSDetailsItemBase;
+import org.fortiss.tooling.kernel.ui.internal.ModelEditorBindingService;
+import org.fortiss.tooling.kernel.ui.introspection.details.DetailsUIHandlerBase;
+import org.fortiss.tooling.kernel.ui.introspection.items.ModelEditorBindingKISSDetailsItem;
+
+import javafx.scene.Node;
+
+/**
+ * {@link DetailsUIHandlerBase} for {@link ModelEditorBindingService}.
+ * 
+ * @author hoelzl
+ */
+public final class ModelEditorBindingKISSDetailsUIHandler
+		extends EObjectAwareKISSDetailsUIHandlerBase {
+	/** {@inheritDoc} */
+	@Override
+	public Node createDisplayControl() {
+		String heading = "Type to search registered model editor bindings:";
+		String footer = "Number of currently registered model editor bindings: " +
+				getRootObject().countHandlers();
+		return createFilteredTree(heading, footer);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected void createTreeColumns(DynamicTreeTableViewer<Object> tree) {
+		createDefaultTreeColumns(tree, "Class / Binding", 250, "Binding Class", 400,
+				"EObject Class", 400);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected DynamicTreeContentProviderBase<Object> createContentProvider() {
+		return new EObjectAwareTreeContentProviderBase() {
+			@Override
+			protected EObjectAwareKISSDetailsItemBase<?> getInputObject() {
+				return ModelEditorBindingKISSDetailsUIHandler.this.getRootObject();
+			}
+		};
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected ModelEditorBindingKISSDetailsItem getRootObject() {
+		return (ModelEditorBindingKISSDetailsItem)dataItem;
+	}
+}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/ModelElementHandlerKISSDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/ModelElementHandlerKISSDetailsUIHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..3a20a86d7e053e7c7801e9f895628e451c93077b
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/ModelElementHandlerKISSDetailsUIHandler.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2018 fortiss GmbH.
+ * 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ * which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ *******************************************************************************/
+package org.fortiss.tooling.kernel.ui.introspection.details.handler;
+
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer;
+import org.fortiss.tooling.kernel.introspection.items.EObjectAwareKISSDetailsItemBase;
+import org.fortiss.tooling.kernel.ui.internal.ModelElementHandlerService;
+import org.fortiss.tooling.kernel.ui.introspection.details.DetailsUIHandlerBase;
+import org.fortiss.tooling.kernel.ui.introspection.items.ModelElementHandlerKISSDetailsItem;
+
+import javafx.scene.Node;
+
+/**
+ * {@link DetailsUIHandlerBase} for {@link ModelElementHandlerService}.
+ * 
+ * @author hoelzl
+ */
+public final class ModelElementHandlerKISSDetailsUIHandler
+		extends EObjectAwareKISSDetailsUIHandlerBase {
+	/** {@inheritDoc} */
+	@Override
+	public Node createDisplayControl() {
+		String heading = "Type to search registered model element handlers:";
+		String footer = "Number of currently registered model element handlers: " +
+				getRootObject().countHandlers();
+		return createFilteredTree(heading, footer);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected void createTreeColumns(DynamicTreeTableViewer<Object> tree) {
+		createDefaultTreeColumns(tree, "Class / Handler", 250, "Handler Class", 400,
+				"EObject Class", 400);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected DynamicTreeContentProviderBase<Object> createContentProvider() {
+		return new EObjectAwareTreeContentProviderBase() {
+			@Override
+			protected EObjectAwareKISSDetailsItemBase<?> getInputObject() {
+				return ModelElementHandlerKISSDetailsUIHandler.this.getRootObject();
+			}
+		};
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected ModelElementHandlerKISSDetailsItem getRootObject() {
+		return (ModelElementHandlerKISSDetailsItem)dataItem;
+	}
+}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/PersistencyServiceIntrospectionDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/PersistencyKISSDetailsUIHandler.java
similarity index 57%
rename from org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/PersistencyServiceIntrospectionDetailsUIHandler.java
rename to org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/PersistencyKISSDetailsUIHandler.java
index 8019c9fa146eb5831be048edc94c8d284cc90595..05d704220db19e0e31fb94ada2ddfc4dd6f28355 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/details/handler/PersistencyServiceIntrospectionDetailsUIHandler.java
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/PersistencyKISSDetailsUIHandler.java
@@ -13,81 +13,72 @@
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.details.handler;
+package org.fortiss.tooling.kernel.ui.introspection.details.handler;
+
+import static java.util.Arrays.asList;
+
+import java.util.Collection;
 
-import org.conqat.ide.commons.ui.jface.TreeContentProviderBase;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TableLabelProviderBase;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.ui.dialogs.PatternFilter;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableUIProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer;
 import org.fortiss.tooling.kernel.extension.IStorageProvider;
 import org.fortiss.tooling.kernel.extension.data.ITopLevelElement;
 import org.fortiss.tooling.kernel.extension.data.ModelStorageError;
-import org.fortiss.tooling.kernel.introspection.items.PersistencyServiceIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.PersistencyKISSDetailsItem;
 import org.fortiss.tooling.kernel.service.IPersistencyService;
 import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService;
 
+import javafx.scene.Node;
+import javafx.scene.control.ContextMenu;
+
 /**
  * Introspection UI handler for the {@link IPersistencyService}.
  * 
  * @author hoelzl
  */
-public final class PersistencyServiceIntrospectionDetailsUIHandler
-		extends IntrospectionDetailsUIHandlerBase {
+public final class PersistencyKISSDetailsUIHandler
+		extends KISSDetailsUIHandlerBase {
 
 	/** {@inheritDoc} */
 	@Override
-	public Control createComposite(ScrolledComposite parent) {
+	public Node createDisplayControl() {
 		String heading = "Type to search registered persistency providers:";
 		String footer = "Number of currently registered providers: " +
-				getInputObject().getStorageProviders().size();
-		return createFilteredTreeInTabFolder(parent, heading, footer, "Registered Providers");
+				getRootObject().getStorageProviders().size();
+		return createFilteredTree(heading, footer);
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	protected void createTreeColumns(Tree tree) {
-		TreeColumn col0 = new TreeColumn(tree, SWT.LEFT);
-		col0.setText("Storage Provider Class / Toplevel Element");
-		col0.setWidth(450);
-
-		TreeColumn col1 = new TreeColumn(tree, SWT.LEFT);
-		col1.setText("Toplevel EObject Class / Storage Error Message");
-		col1.setWidth(400);
-
-		TreeColumn col2 = new TreeColumn(tree, SWT.LEFT);
-		col2.setText("Error Cause Exception");
-		col2.setWidth(400);
+	protected void createTreeColumns(DynamicTreeTableViewer<Object> tree) {
+		tree.addColumn("Storage Provider Class / Toplevel Element", 450);
+		tree.addColumn("Toplevel EObject Class / Storage Error Message", 400);
+		tree.addColumn("Error Cause Exception", 400);
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	protected ITreeContentProvider createContentProvider() {
-		return new TreeContentProviderBase() {
+	protected DynamicTreeContentProviderBase<Object> createContentProvider() {
+		return new DynamicTreeContentProviderBase<Object>() {
 
 			@Override
-			public Object[] getChildren(Object parentElement) {
-				if(parentElement == getInputObject()) {
-					return getInputObject().getStorageProviders().toArray();
+			public Collection<? extends Object> getChildren(Object parentElement) {
+				if(parentElement == getRootObject()) {
+					return getRootObject().getStorageProviders();
 				}
 				if(parentElement instanceof IStorageProvider) {
 					IStorageProvider prov = (IStorageProvider)parentElement;
-					return new Object[] {new ToplevelOrErrorTreeNode(prov, true),
-							new ToplevelOrErrorTreeNode(prov, false)};
+					return asList(new Object[] {new ToplevelOrErrorTreeNode(prov, true),
+							new ToplevelOrErrorTreeNode(prov, false)});
 				}
 				if(parentElement instanceof ToplevelOrErrorTreeNode) {
 					ToplevelOrErrorTreeNode node = (ToplevelOrErrorTreeNode)parentElement;
 					if(node.isToplevel) {
-						return node.provider.getTopLevelElements().toArray();
+						return node.provider.getTopLevelElements();
 					}
-					return node.provider.getStorageErrors().toArray();
+					return node.provider.getStorageErrors();
 				}
 				return null;
 			}
@@ -96,10 +87,21 @@ public final class PersistencyServiceIntrospectionDetailsUIHandler
 
 	/** {@inheritDoc} */
 	@Override
-	protected ITableLabelProvider createLabelProvider() {
-		return new TableLabelProviderBase() {
+	protected DynamicTreeTableUIProviderBase<Object> createUIProvider() {
+		return new DynamicTreeTableUIProviderBase<Object>() {
+			@Override
+			public ContextMenu createContextMenu(Object element, int column) {
+				if(element instanceof IStorageProvider) {
+					return createCopyClassNameMenuItem(element.getClass());
+				} else if(element instanceof ITopLevelElement) {
+					EObject eo = ((ITopLevelElement)element).getRootModelElement();
+					return createCopyClassNameMenuItem(eo.getClass());
+				}
+				return null;
+			}
+
 			@Override
-			public String getColumnText(Object parentElement, int columnIndex) {
+			public String getLabel(Object parentElement, int columnIndex) {
 				if(parentElement instanceof IStorageProvider) {
 					IStorageProvider isp = (IStorageProvider)parentElement;
 					return columnIndex == 0 ? isp.getClass().getName() : "";
@@ -141,38 +143,15 @@ public final class PersistencyServiceIntrospectionDetailsUIHandler
 
 	/** {@inheritDoc} */
 	@Override
-	protected boolean testSelection(Object selection) {
-		return selection instanceof IStorageProvider || selection instanceof ITopLevelElement;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected void populateContextMenu(Object selection, MenuManager mgr) {
-		if(selection instanceof IStorageProvider) {
-			mgr.add(createCopyClassNameAction(selection.getClass()));
-		} else if(selection instanceof ITopLevelElement) {
-			EObject eo = ((ITopLevelElement)selection).getRootModelElement();
-			mgr.add(createCopyClassNameAction(eo.getClass()));
-		}
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected PatternFilter createPatternFilter() {
-		return new TableViewerPatternFilter();
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected PersistencyServiceIntrospectionDetailsItem getInputObject() {
-		return (PersistencyServiceIntrospectionDetailsItem)dataItem;
+	protected PersistencyKISSDetailsItem getRootObject() {
+		return (PersistencyKISSDetailsItem)dataItem;
 	}
 
 	/** Class for tree nodes below storage providers. */
 	private static class ToplevelOrErrorTreeNode {
 		/** The storage provider. */
 		public final IStorageProvider provider;
-		/** The toplevel flag. */
+		/** The top level flag. */
 		public final boolean isToplevel;
 
 		/** Constructor. */
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/PrototypeKISSDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/PrototypeKISSDetailsUIHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..772e56f5ac42d719b93b4de894e3893528c47f7b
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/PrototypeKISSDetailsUIHandler.java
@@ -0,0 +1,152 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2018 fortiss GmbH.
+ * 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ * which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ *******************************************************************************/
+package org.fortiss.tooling.kernel.ui.introspection.details.handler;
+
+import static java.util.Arrays.asList;
+import static java.util.Collections.emptyList;
+
+import java.util.Collection;
+
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableUIProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer;
+import org.fortiss.tooling.kernel.extension.IPrototypeProvider;
+import org.fortiss.tooling.kernel.extension.data.Prototype;
+import org.fortiss.tooling.kernel.extension.data.PrototypeCategory;
+import org.fortiss.tooling.kernel.service.IPrototypeService;
+
+import javafx.scene.Node;
+import javafx.scene.control.ContextMenu;
+
+/**
+ * Introspection UI handler for the {@link IPrototypeService}.
+ * 
+ * @author hoelzl
+ */
+public final class PrototypeKISSDetailsUIHandler extends KISSDetailsUIHandlerBase {
+
+	/** {@inheritDoc} */
+	@Override
+	public Node createDisplayControl() {
+		String footer = "Number of currently registered Prototypes: " +
+				IPrototypeService.getInstance().getAllPrototypes().size() + " (" +
+				IPrototypeService.getInstance().getPrimaryPrototypes().size() +
+				" primary Prototypes)";
+		return createFilteredTree(null, footer);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected void createTreeColumns(DynamicTreeTableViewer<Object> viewer) {
+		viewer.addColumn("Category / Prototype", 200);
+		viewer.addColumn("Provider Class", 400);
+		viewer.addColumn("EObject Class", 400);
+		viewer.addColumn("Primary", 80);
+	}
+
+	/** Returns the label for the given Prototype and column. */
+	private String getPrototypeLabelForFirstColumn(Prototype arche, int column) {
+		switch(column) {
+			case 0:
+				return arche.getName();
+			case 1:
+				return findPrototypeProviderClass(arche).getName();
+			case 2:
+				return arche.getPrototype().getClass().getName();
+			case 3:
+				return arche.isPrimary() ? "X" : null;
+			default:
+		}
+		return null;
+	}
+
+	/** Find the Prototype provider for the given Prototype. */
+	private Class<? extends IPrototypeProvider> findPrototypeProviderClass(Prototype arche) {
+		for(IPrototypeProvider provider : IPrototypeService.getInstance().getPrototypeProviders()) {
+			if(provider.getPrototypes().contains(arche)) {
+				return provider.getClass();
+			}
+		}
+		return null;
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected Object getRootObject() {
+		return IPrototypeService.getInstance();
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected DynamicTreeContentProviderBase<Object> createContentProvider() {
+		return new DynamicTreeContentProviderBase<Object>() {
+			/** {@inheritDoc} */
+			@Override
+			protected Collection<? extends Object> getChildren(Object parent) {
+				if(parent instanceof IPrototypeService) {
+					return ((IPrototypeService)parent).getAllTopLevelPrototypesCategories();
+				}
+				if(parent instanceof PrototypeCategory) {
+					PrototypeCategory cat = (PrototypeCategory)parent;
+					return asList(cat.getChildren());
+				}
+				// Prototype
+				return emptyList();
+			}
+		};
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected DynamicTreeTableUIProviderBase<Object> createUIProvider() {
+		return new DynamicTreeTableUIProviderBase<Object>() {
+			@Override
+			public String getLabel(Object element, int column) {
+				if(element instanceof Prototype) {
+					return getPrototypeLabelForFirstColumn((Prototype)element, column);
+				}
+				if(element instanceof PrototypeCategory) {
+					return column == 0 ? ((PrototypeCategory)element).getName() : null;
+				}
+				if(element == IPrototypeService.getInstance()) {
+					return column == 0 ? "Prototype Service" : null;
+				}
+				return null;
+			}
+
+			@Override
+			public Node getIconNode(Object element, int column) {
+				return null;
+			}
+
+			/** {@inheritDoc} */
+			@Override
+			public ContextMenu createContextMenu(Object element, int column) {
+				if(element instanceof Prototype) {
+					Prototype arche = (Prototype)element;
+					Class<?> toCopy;
+					if(column == 1) {
+						toCopy = findPrototypeProviderClass(arche);
+					} else if(column == 2) {
+						toCopy = arche.getPrototype().getClass();
+					} else {
+						toCopy = null;
+					}
+					if(toCopy != null) {
+						return createCopyClassNameMenuItem(toCopy);
+					}
+				}
+				return null;
+			}
+		};
+	}
+}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/TransformationKISSDetailsUIHandler.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/TransformationKISSDetailsUIHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..f3641f3cc43df7b285badee15c31261f1a83a51b
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/details/handler/TransformationKISSDetailsUIHandler.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2018 fortiss GmbH.
+ * 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ * which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ *******************************************************************************/
+package org.fortiss.tooling.kernel.ui.introspection.details.handler;
+
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableViewer;
+import org.fortiss.tooling.kernel.introspection.items.EObjectAware2KISSDetailsItemBase;
+import org.fortiss.tooling.kernel.introspection.items.TransformationKISSDetailsItem;
+import org.fortiss.tooling.kernel.service.ITransformationService;
+
+import javafx.scene.Node;
+
+/**
+ * Introspection UI handler for the {@link ITransformationService}.
+ * 
+ * @author hoelzl
+ */
+public final class TransformationKISSDetailsUIHandler
+		extends EObjectAware2KISSDetailsUIHandlerBase {
+	/** {@inheritDoc} */
+	@Override
+	public Node createDisplayControl() {
+		String heading = "Type to serach registered transformation providers:";
+		String footer = "Number of currently registered transformation providers: " +
+				getRootObject().countHandlers();
+		return createFilteredTree(heading, footer);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected void createTreeColumns(DynamicTreeTableViewer<Object> tree) {
+		createDefaultTreeColumns(tree, "Source / Target / Provider", 250, "Provider Class", 400,
+				"Source EObject Class", 400, "Target EObject Class", 400);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected DynamicTreeContentProviderBase<Object> createContentProvider() {
+		return new EObjectAware2TreeContentProviderBase() {
+			@Override
+			protected EObjectAware2KISSDetailsItemBase<?> getInputObject() {
+				return TransformationKISSDetailsUIHandler.this.getRootObject();
+			}
+		};
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	protected TransformationKISSDetailsItem getRootObject() {
+		return (TransformationKISSDetailsItem)dataItem;
+	}
+}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/items/.ratings b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/items/.ratings
new file mode 100644
index 0000000000000000000000000000000000000000..b6a4d0829c9bf47ceaa7a4bbfccc751647c52c46
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/items/.ratings
@@ -0,0 +1,5 @@
+AllocationEditPartFactoryKISSDetailsItem.java 32851f78313d514dbdceaf7ff403b72519970c04 GREEN
+ContextMenuKISSDetailsItem.java 5842153c7f7445ad2863614aee78c0c205011521 GREEN
+EditPartFactoryKISSDetailsItem.java 78706937ac2cdf0545bb512a3190de0437f0770f GREEN
+ModelEditorBindingKISSDetailsItem.java a95423f878cc2a13e84c2aebdd6d5e4376c7ec94 GREEN
+ModelElementHandlerKISSDetailsItem.java 24d1ab16879d66cd15ee03b9ed61d39d7ca35aab GREEN
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/items/AllocationEditPartFactoryServiceIntrospectionDetailsItem.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/items/AllocationEditPartFactoryKISSDetailsItem.java
similarity index 84%
rename from org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/items/AllocationEditPartFactoryServiceIntrospectionDetailsItem.java
rename to org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/items/AllocationEditPartFactoryKISSDetailsItem.java
index e2067b2d95c270a9aed82a2368177d76b0144d79..32851f78313d514dbdceaf7ff403b72519970c04 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/items/AllocationEditPartFactoryServiceIntrospectionDetailsItem.java
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/items/AllocationEditPartFactoryKISSDetailsItem.java
@@ -13,13 +13,13 @@
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.items;
+package org.fortiss.tooling.kernel.ui.introspection.items;
 
 import java.util.List;
 import java.util.Map;
 
 import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.introspection.items.EObjectAwareIntrospectionDetailsItemBase;
+import org.fortiss.tooling.kernel.introspection.items.EObjectAwareKISSDetailsItemBase;
 import org.fortiss.tooling.kernel.ui.extension.IAllocationEditPartFactory;
 import org.fortiss.tooling.kernel.ui.internal.AllocationEditPartFactoryService;
 
@@ -28,11 +28,11 @@ import org.fortiss.tooling.kernel.ui.internal.AllocationEditPartFactoryService;
  * 
  * @author hoelzl
  */
-public final class AllocationEditPartFactoryServiceIntrospectionDetailsItem
-		extends EObjectAwareIntrospectionDetailsItemBase<IAllocationEditPartFactory> {
+public final class AllocationEditPartFactoryKISSDetailsItem
+		extends EObjectAwareKISSDetailsItemBase<IAllocationEditPartFactory> {
 
 	/** Constructor. */
-	public AllocationEditPartFactoryServiceIntrospectionDetailsItem(
+	public AllocationEditPartFactoryKISSDetailsItem(
 			Map<Class<?>, List<IAllocationEditPartFactory>> handlerMap) {
 		super(handlerMap);
 	}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/items/ContextMenuKISSDetailsItem.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/items/ContextMenuKISSDetailsItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..5842153c7f7445ad2863614aee78c0c205011521
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/items/ContextMenuKISSDetailsItem.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2018 fortiss GmbH.
+ * 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ * which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ *******************************************************************************/
+package org.fortiss.tooling.kernel.ui.introspection.items;
+
+import java.util.List;
+
+import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.HandlerListKISSDetailsItemBase;
+import org.fortiss.tooling.kernel.ui.extension.IContextMenuContributor;
+import org.fortiss.tooling.kernel.ui.internal.ContextMenuService;
+
+/**
+ * {@link IIntrospectionDetailsItem} for the {@link ContextMenuService}.
+ * 
+ * @author hoelzl
+ */
+public final class ContextMenuKISSDetailsItem
+		extends HandlerListKISSDetailsItemBase<IContextMenuContributor> {
+	/** Constructor. */
+	public ContextMenuKISSDetailsItem(List<IContextMenuContributor> handlerList) {
+		super(handlerList);
+	}
+}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/items/EditPartFactoryServiceIntrospectionDetailsItem.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/items/EditPartFactoryKISSDetailsItem.java
similarity index 85%
rename from org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/items/EditPartFactoryServiceIntrospectionDetailsItem.java
rename to org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/items/EditPartFactoryKISSDetailsItem.java
index f11316c73b6de0e254c4e319e063065e598d5c96..78706937ac2cdf0545bb512a3190de0437f0770f 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/introspection/items/EditPartFactoryServiceIntrospectionDetailsItem.java
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/items/EditPartFactoryKISSDetailsItem.java
@@ -13,13 +13,13 @@
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.ui.internal.introspection.items;
+package org.fortiss.tooling.kernel.ui.introspection.items;
 
 import java.util.List;
 import java.util.Map;
 
 import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
-import org.fortiss.tooling.kernel.introspection.items.EObjectAwareIntrospectionDetailsItemBase;
+import org.fortiss.tooling.kernel.introspection.items.EObjectAwareKISSDetailsItemBase;
 import org.fortiss.tooling.kernel.ui.extension.IEditPartFactory;
 import org.fortiss.tooling.kernel.ui.internal.EditPartFactoryService;
 
@@ -28,11 +28,11 @@ import org.fortiss.tooling.kernel.ui.internal.EditPartFactoryService;
  * 
  * @author hoelzl
  */
-public final class EditPartFactoryServiceIntrospectionDetailsItem
-		extends EObjectAwareIntrospectionDetailsItemBase<IEditPartFactory> {
+public final class EditPartFactoryKISSDetailsItem
+		extends EObjectAwareKISSDetailsItemBase<IEditPartFactory> {
 
 	/** Constructor. */
-	public EditPartFactoryServiceIntrospectionDetailsItem(
+	public EditPartFactoryKISSDetailsItem(
 			Map<Class<?>, List<IEditPartFactory>> handlerMap) {
 		super(handlerMap);
 	}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/items/ModelEditorBindingKISSDetailsItem.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/items/ModelEditorBindingKISSDetailsItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..a95423f878cc2a13e84c2aebdd6d5e4376c7ec94
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/items/ModelEditorBindingKISSDetailsItem.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2018 fortiss GmbH.
+ * 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ * which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ *******************************************************************************/
+package org.fortiss.tooling.kernel.ui.introspection.items;
+
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EObject;
+import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.EObjectAwareKISSDetailsItemBase;
+import org.fortiss.tooling.kernel.ui.extension.IModelEditorBinding;
+import org.fortiss.tooling.kernel.ui.internal.ModelEditorBindingService;
+
+/**
+ * {@link IIntrospectionDetailsItem} for {@link ModelEditorBindingService}.
+ * 
+ * @author hoelzl
+ */
+public final class ModelEditorBindingKISSDetailsItem
+		extends EObjectAwareKISSDetailsItemBase<IModelEditorBinding<EObject>> {
+
+	/** Constructor. */
+	public ModelEditorBindingKISSDetailsItem(
+			Map<Class<?>, List<IModelEditorBinding<EObject>>> handlerMap) {
+		super(handlerMap);
+	}
+}
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/items/ModelElementHandlerKISSDetailsItem.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/items/ModelElementHandlerKISSDetailsItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..24d1ab16879d66cd15ee03b9ed61d39d7ca35aab
--- /dev/null
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/introspection/items/ModelElementHandlerKISSDetailsItem.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2018 fortiss GmbH.
+ * 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ * which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ *******************************************************************************/
+package org.fortiss.tooling.kernel.ui.introspection.items;
+
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EObject;
+import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.EObjectAwareKISSDetailsItemBase;
+import org.fortiss.tooling.kernel.ui.extension.IModelElementHandler;
+import org.fortiss.tooling.kernel.ui.internal.ModelElementHandlerService;
+
+/**
+ * {@link IIntrospectionDetailsItem} for {@link ModelElementHandlerService}.
+ * 
+ * @author hoelzl
+ */
+public final class ModelElementHandlerKISSDetailsItem
+		extends EObjectAwareKISSDetailsItemBase<IModelElementHandler<EObject>> {
+
+	/** Constructor. */
+	public ModelElementHandlerKISSDetailsItem(
+			Map<Class<?>, List<IModelElementHandler<EObject>>> handlerMap) {
+		super(handlerMap);
+	}
+}
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/.ratings b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/.ratings
index 7559b41bf611f07b204b659593d47b93676353d3..64dad4fdd31dac77c2ebb8894c02cd99953ca388 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/.ratings
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/.ratings
@@ -1,15 +1,15 @@
 CommandLineInterfaceService.java 6b5c94c52702f773c60b181eff52204ab379b248 GREEN
 CommandStackService.java 957bda69b5feb91f002aed4d25ed334e92801e7e GREEN
-ConnectionCompositorService.java d69a60cd7a3d06e91d24fd32b9c00125ea71e0dd GREEN
-ConstraintCheckerService.java 459b5eb717598e7e8bb71a0c87e57ea85cb00e4b GREEN
+ConnectionCompositorService.java 5a52f8a3e88c167ae6909c3d9eb3fb4706177e8b GREEN
+ConstraintCheckerService.java abd4667ceef11c47235e20a6566d8943f3417cf3 GREEN
 DummyTopLevelElement.java 8394597464707992cd053e68129bb87ce9f696db GREEN
-ElementCompositorService.java 98c5d27e09881e60aa4f87c1ac0c7787cdec9f7c GREEN
+ElementCompositorService.java 38af0fde6746717f95b8151a621b725ddd088650 GREEN
 LibraryPrototypeProvider.java b77eddbdca78f561ffb1233e98817be361c690ae GREEN
-LibraryService.java d22671ba820466062852c15873698adf28960d94 GREEN
+LibraryService.java a56e71191cd9bab5a6be461000e7e9b605c7b0db GREEN
 LoggingService.java da784259f7b456b54bf75c41ec268f64919ce78d GREEN
-MigrationService.java 8df3452b6dd58424ee581fc7ac4f801244e8d63b GREEN
-PersistencyService.java 2e3936012a9b7217a293cbe8272ffa5f02518045 GREEN
-PrototypeService.java cf8e6fa96ba9c2f65b24400054ed68e93238a975 GREEN
+MigrationService.java 017c8438262065f663427a998536035bc7732fe1 GREEN
+PersistencyService.java 621898863371959d822edcde0f83c8a4d2757972 GREEN
+PrototypeService.java 04093ccaea091776e8ed6f8fc723a62e4619ddb6 GREEN
 ToolingKernelInternal.java f6e7114825748683c7f1d040b41ab854a6c4d79b GREEN
-TransformationService.java 3cdb86fe920158f93cd9466c6ef9697b2dd8ca7f GREEN
+TransformationService.java 64ee4fb5ccc623f8acfba20866fc2b0944c4adab GREEN
 TutorialService.java 675d3f365ce062869f86baa3779d50687674bda0 GREEN
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/ConnectionCompositorService.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/ConnectionCompositorService.java
index d69a60cd7a3d06e91d24fd32b9c00125ea71e0dd..5a52f8a3e88c167ae6909c3d9eb3fb4706177e8b 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/ConnectionCompositorService.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/ConnectionCompositorService.java
@@ -25,7 +25,7 @@ import org.fortiss.tooling.kernel.extension.IConnectionCompositor;
 import org.fortiss.tooling.kernel.extension.data.IConnectionCompositionContext;
 import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
 import org.fortiss.tooling.kernel.introspection.IIntrospectionItem;
-import org.fortiss.tooling.kernel.introspection.items.ConnectionCompositorServiceIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.ConnectionCompositorKISSDetailsItem;
 import org.fortiss.tooling.kernel.service.IConnectionCompositorService;
 import org.fortiss.tooling.kernel.service.IKernelIntrospectionSystemService;
 import org.fortiss.tooling.kernel.service.base.EObjectAware2ServiceBase;
@@ -231,6 +231,6 @@ public class ConnectionCompositorService
 	/** {@inheritDoc} */
 	@Override
 	public IIntrospectionDetailsItem getDetailsItem() {
-		return new ConnectionCompositorServiceIntrospectionDetailsItem(handlersBySource);
+		return new ConnectionCompositorKISSDetailsItem(handlersBySource);
 	}
 }
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/ConstraintCheckerService.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/ConstraintCheckerService.java
index 459b5eb717598e7e8bb71a0c87e57ea85cb00e4b..abd4667ceef11c47235e20a6566d8943f3417cf3 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/ConstraintCheckerService.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/ConstraintCheckerService.java
@@ -30,7 +30,7 @@ import org.fortiss.tooling.kernel.extension.data.IConstraintViolation;
 import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
 import org.fortiss.tooling.kernel.introspection.IIntrospectionItem;
 import org.fortiss.tooling.kernel.introspection.IIntrospectiveKernelService;
-import org.fortiss.tooling.kernel.introspection.items.ConstraintCheckerServiceIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.ConstraintCheckerKISSDetailsItem;
 import org.fortiss.tooling.kernel.service.IConstraintCheckerService;
 import org.fortiss.tooling.kernel.service.IKernelIntrospectionSystemService;
 import org.fortiss.tooling.kernel.service.base.EObjectAwareServiceBase;
@@ -177,6 +177,6 @@ public class ConstraintCheckerService extends EObjectAwareServiceBase<IConstrain
 	/** {@inheritDoc} */
 	@Override
 	public IIntrospectionDetailsItem getDetailsItem() {
-		return new ConstraintCheckerServiceIntrospectionDetailsItem(unmodifiableMap(handlerMap));
+		return new ConstraintCheckerKISSDetailsItem(unmodifiableMap(handlerMap));
 	}
 }
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/ElementCompositorService.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/ElementCompositorService.java
index 98c5d27e09881e60aa4f87c1ac0c7787cdec9f7c..38af0fde6746717f95b8151a621b725ddd088650 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/ElementCompositorService.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/ElementCompositorService.java
@@ -29,7 +29,7 @@ import org.fortiss.tooling.kernel.extension.data.Prototype;
 import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
 import org.fortiss.tooling.kernel.introspection.IIntrospectionItem;
 import org.fortiss.tooling.kernel.introspection.IIntrospectiveKernelService;
-import org.fortiss.tooling.kernel.introspection.items.ElementCompositorServiceIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.ElementCompositorKISSDetailsItem;
 import org.fortiss.tooling.kernel.model.ILibraryElementReference;
 import org.fortiss.tooling.kernel.service.IElementCompositorService;
 import org.fortiss.tooling.kernel.service.IKernelIntrospectionSystemService;
@@ -210,6 +210,6 @@ public final class ElementCompositorService
 	/** {@inheritDoc} */
 	@Override
 	public IIntrospectionDetailsItem getDetailsItem() {
-		return new ElementCompositorServiceIntrospectionDetailsItem(handlerMap);
+		return new ElementCompositorKISSDetailsItem(handlerMap);
 	}
 }
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/LibraryService.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/LibraryService.java
index d22671ba820466062852c15873698adf28960d94..a56e71191cd9bab5a6be461000e7e9b605c7b0db 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/LibraryService.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/LibraryService.java
@@ -38,7 +38,7 @@ import org.fortiss.tooling.kernel.extension.data.ITopLevelElement;
 import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
 import org.fortiss.tooling.kernel.introspection.IIntrospectionItem;
 import org.fortiss.tooling.kernel.introspection.IIntrospectiveKernelService;
-import org.fortiss.tooling.kernel.introspection.items.LibraryServiceIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.LibraryKISSDetailsItem;
 import org.fortiss.tooling.kernel.model.ILibrary;
 import org.fortiss.tooling.kernel.model.ILibraryElement;
 import org.fortiss.tooling.kernel.model.ILibraryElementReference;
@@ -329,6 +329,6 @@ public class LibraryService extends EObjectAwareServiceBase<ILibraryElementHandl
 	/** {@inheritDoc} */
 	@Override
 	public IIntrospectionDetailsItem getDetailsItem() {
-		return new LibraryServiceIntrospectionDetailsItem(handlerMap);
+		return new LibraryKISSDetailsItem(handlerMap);
 	}
 }
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/MigrationService.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/MigrationService.java
index 8df3452b6dd58424ee581fc7ac4f801244e8d63b..017c8438262065f663427a998536035bc7732fe1 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/MigrationService.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/MigrationService.java
@@ -38,7 +38,7 @@ import org.fortiss.tooling.kernel.extension.data.ITopLevelElement;
 import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
 import org.fortiss.tooling.kernel.introspection.IIntrospectionItem;
 import org.fortiss.tooling.kernel.introspection.IIntrospectiveKernelService;
-import org.fortiss.tooling.kernel.introspection.items.MigrationServiceIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.MigrationKISSDetailsItem;
 import org.fortiss.tooling.kernel.service.IKernelIntrospectionSystemService;
 import org.fortiss.tooling.kernel.service.IMigrationService;
 import org.fortiss.tooling.kernel.service.base.ObjectAwareServiceBase;
@@ -203,6 +203,6 @@ public class MigrationService extends ObjectAwareServiceBase<IMigrationProvider>
 	/** {@inheritDoc} */
 	@Override
 	public IIntrospectionDetailsItem getDetailsItem() {
-		return new MigrationServiceIntrospectionDetailsItem(handlerMap);
+		return new MigrationKISSDetailsItem(handlerMap);
 	}
 }
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/PersistencyService.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/PersistencyService.java
index 2e3936012a9b7217a293cbe8272ffa5f02518045..621898863371959d822edcde0f83c8a4d2757972 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/PersistencyService.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/PersistencyService.java
@@ -49,7 +49,7 @@ import org.fortiss.tooling.kernel.internal.storage.eclipse.EclipseResourceStorag
 import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
 import org.fortiss.tooling.kernel.introspection.IIntrospectionItem;
 import org.fortiss.tooling.kernel.introspection.IIntrospectiveKernelService;
-import org.fortiss.tooling.kernel.introspection.items.PersistencyServiceIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.PersistencyKISSDetailsItem;
 import org.fortiss.tooling.kernel.service.IKernelIntrospectionSystemService;
 import org.fortiss.tooling.kernel.service.ILibraryService;
 import org.fortiss.tooling.kernel.service.IPersistencyService;
@@ -378,7 +378,7 @@ public class PersistencyService implements IPersistencyService, IIntrospectiveKe
 	/** {@inheritDoc} */
 	@Override
 	public IIntrospectionDetailsItem getDetailsItem() {
-		return new PersistencyServiceIntrospectionDetailsItem(
+		return new PersistencyKISSDetailsItem(
 				unmodifiableList(storageProviderList));
 	}
 }
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/PrototypeService.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/PrototypeService.java
index cf8e6fa96ba9c2f65b24400054ed68e93238a975..04093ccaea091776e8ed6f8fc723a62e4619ddb6 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/PrototypeService.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/PrototypeService.java
@@ -37,7 +37,7 @@ import org.fortiss.tooling.kernel.extension.data.PrototypeCategory;
 import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
 import org.fortiss.tooling.kernel.introspection.IIntrospectionItem;
 import org.fortiss.tooling.kernel.introspection.IIntrospectiveKernelService;
-import org.fortiss.tooling.kernel.introspection.items.PrototypeServiceIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.PrototypeKISSDetailsItem;
 import org.fortiss.tooling.kernel.service.IElementCompositorService;
 import org.fortiss.tooling.kernel.service.IKernelIntrospectionSystemService;
 import org.fortiss.tooling.kernel.service.IPrototypeService;
@@ -236,6 +236,6 @@ public class PrototypeService implements IPrototypeService, IIntrospectiveKernel
 	/** {@inheritDoc} */
 	@Override
 	public IIntrospectionDetailsItem getDetailsItem() {
-		return new PrototypeServiceIntrospectionDetailsItem(prototypeProviderList);
+		return new PrototypeKISSDetailsItem(prototypeProviderList);
 	}
 }
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/TransformationService.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/TransformationService.java
index 3cdb86fe920158f93cd9466c6ef9697b2dd8ca7f..64ee4fb5ccc623f8acfba20866fc2b0944c4adab 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/TransformationService.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/TransformationService.java
@@ -31,7 +31,7 @@ import org.fortiss.tooling.kernel.extension.exception.TransformationFailedExcept
 import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
 import org.fortiss.tooling.kernel.introspection.IIntrospectionItem;
 import org.fortiss.tooling.kernel.introspection.IIntrospectiveKernelService;
-import org.fortiss.tooling.kernel.introspection.items.TransformationServiceIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.TransformationKISSDetailsItem;
 import org.fortiss.tooling.kernel.service.IKernelIntrospectionSystemService;
 import org.fortiss.tooling.kernel.service.ITransformationService;
 import org.fortiss.tooling.kernel.service.base.ObjectAware2ServiceBase;
@@ -213,6 +213,6 @@ public class TransformationService extends ObjectAware2ServiceBase<ITransformati
 	/** {@inheritDoc} */
 	@Override
 	public IIntrospectionDetailsItem getDetailsItem() {
-		return new TransformationServiceIntrospectionDetailsItem(handlersBySource);
+		return new TransformationKISSDetailsItem(handlersBySource);
 	}
 }
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/.ratings b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/.ratings
index 605b741d853bf1e95bbf06c68ab9a477dea3beb5..0eae779d6882320da1e58a473bd81f9bf3b3b4c2 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/.ratings
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/.ratings
@@ -1,5 +1,5 @@
 AutoUndoCommandStack.java fc326adf66c6cea2354884cdc240da5f2f82689a GREEN
 EMFTransactionalCommand.java ba4b5bead9768b6ce6c955b9238cd96cb722533c GREEN
-EclipseResourceStorageService.java e29e32272286921c5e43963253902b3ba54490c7 GREEN
+EclipseResourceStorageService.java e917c822c53eacada70188e66215d91241a29a5c GREEN
 ModelContext.java db1735834c85e7b508266f56463d011f2b72af0e GREEN
 NonDirtyingEMFTransactionalCommand.java d288ebe35d22442c603496b0c917fb99a8febeea GREEN
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/EclipseResourceStorageService.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/EclipseResourceStorageService.java
index e29e32272286921c5e43963253902b3ba54490c7..e917c822c53eacada70188e66215d91241a29a5c 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/EclipseResourceStorageService.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/EclipseResourceStorageService.java
@@ -62,7 +62,7 @@ import org.fortiss.tooling.kernel.extension.data.ModelStorageError;
 import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
 import org.fortiss.tooling.kernel.introspection.IIntrospectionItem;
 import org.fortiss.tooling.kernel.introspection.IIntrospectiveKernelService;
-import org.fortiss.tooling.kernel.introspection.items.EclipseResourceStorageServiceIntrospectionDetailsItem;
+import org.fortiss.tooling.kernel.introspection.items.EclipseResourceStorageKISSDetailsItem;
 import org.fortiss.tooling.kernel.service.IEclipseResourceStorageService;
 import org.fortiss.tooling.kernel.service.IKernelIntrospectionSystemService;
 import org.fortiss.tooling.kernel.service.IMigrationService;
@@ -380,7 +380,7 @@ public class EclipseResourceStorageService
 	/** {@inheritDoc} */
 	@Override
 	public IIntrospectionDetailsItem getDetailsItem() {
-		return new EclipseResourceStorageServiceIntrospectionDetailsItem(
+		return new EclipseResourceStorageKISSDetailsItem(
 				unmodifiableList(storageProviderList), unmodifiableSet(loadedContexts.keySet()),
 				unmodifiableList(errorFiles));
 	}
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/.ratings b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/.ratings
index 4d68392c608bdb58c04bcb591a4119a9a93348a7..13afc760803d6b4a301f485a54102dc9c4692244 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/.ratings
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/.ratings
@@ -1,13 +1,12 @@
-ConnectionCompositorServiceIntrospectionDetailsItem.java c6befabe02548ce9ecb0f22731fe6381b1157934 GREEN
-ConstraintCheckerServiceIntrospectionDetailsItem.java d298a458c082340ae1fd661515b3f377025956e9 GREEN
-ConstraintVerificationServiceIntrospectionDetailsItem.java 9499a4b7ffa68d0090bb27e8cd9da13381f298c7 GREEN
-EObjectAware2IntrospectionDetailsItemBase.java 989074df3614be4e2bbe08d42f131e6e28f76be1 GREEN
-EObjectAwareIntrospectionDetailsItemBase.java 9da902642592eef8ab9ef6fa81afca04a487cd02 GREEN
-EclipseResourceStorageServiceIntrospectionDetailsItem.java 029a4571636c00694d89cd3bd23890013788c694 GREEN
-ElementCompositorServiceIntrospectionDetailsItem.java 7b500c302eacec901c341b595a4376077d343805 GREEN
-HandlerListIntrospectionDetailsItemBase.java c715c41a16949e242d41bd4aaacc5e60ec038ad3 GREEN
-LibraryServiceIntrospectionDetailsItem.java e28c0d0c68d78c302631453e5d81fa51726d4f14 GREEN
-MigrationServiceIntrospectionDetailsItem.java bd1047ae6790bdfceac484b6fcf50fa9c8d229de GREEN
-PersistencyServiceIntrospectionDetailsItem.java a7009895eed0e9d662be1639a31c27ff4114a676 GREEN
-PrototypeServiceIntrospectionDetailsItem.java 6f108541a632c33dbc5a547d7f7908c0287f9a67 GREEN
-TransformationServiceIntrospectionDetailsItem.java c0a076c3feaae46ffe7374c0926c1a81e3bb05ca GREEN
+ConnectionCompositorKISSDetailsItem.java b5c705a339240fe38045dfafe2832994bfe7f8f9 GREEN
+ConstraintCheckerKISSDetailsItem.java 231b58db35fd6e16c568d3e58741f48c10e9f991 GREEN
+EObjectAware2KISSDetailsItemBase.java 4b0a7db4a86790ba8483fd9e89cef6a58f197955 GREEN
+EObjectAwareKISSDetailsItemBase.java 45d235bff6440100df2c5b0bd9ab7c60ca5e6fb8 GREEN
+EclipseResourceStorageKISSDetailsItem.java d2a9cd0310528a518364e0be6cc65ac97f551109 GREEN
+ElementCompositorKISSDetailsItem.java 932775656f0afa0de489497617f30d78f7044ca7 GREEN
+HandlerListKISSDetailsItemBase.java 8ef06b5ba28b0d4e1ecf17c7fd4489a5287e36d4 GREEN
+LibraryKISSDetailsItem.java d23d29838c290d14b2b2cf99d4b2c2f2e2d6f6b7 GREEN
+MigrationKISSDetailsItem.java 2411c72ca2c0637ae6966c89fbd4f4c3bc55ba04 GREEN
+PersistencyKISSDetailsItem.java 1afa6a1254150a4dd61bc9c22837ac442931d524 GREEN
+PrototypeKISSDetailsItem.java 4af5eda84a717ca471c70d4e801a17a103ec391b GREEN
+TransformationKISSDetailsItem.java f2fc5a23bbc911f66c91d8d0b6ce3e03db369447 GREEN
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/ConnectionCompositorServiceIntrospectionDetailsItem.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/ConnectionCompositorKISSDetailsItem.java
similarity index 88%
rename from org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/ConnectionCompositorServiceIntrospectionDetailsItem.java
rename to org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/ConnectionCompositorKISSDetailsItem.java
index c6befabe02548ce9ecb0f22731fe6381b1157934..b5c705a339240fe38045dfafe2832994bfe7f8f9 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/ConnectionCompositorServiceIntrospectionDetailsItem.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/ConnectionCompositorKISSDetailsItem.java
@@ -28,11 +28,11 @@ import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
  * 
  * @author hoelzl
  */
-public final class ConnectionCompositorServiceIntrospectionDetailsItem extends
-		EObjectAware2IntrospectionDetailsItemBase<IConnectionCompositor<EObject, EObject, EObject>> {
+public final class ConnectionCompositorKISSDetailsItem extends
+		EObjectAware2KISSDetailsItemBase<IConnectionCompositor<EObject, EObject, EObject>> {
 
 	/** Constructor. */
-	public ConnectionCompositorServiceIntrospectionDetailsItem(
+	public ConnectionCompositorKISSDetailsItem(
 			Map<Class<?>, Map<Class<?>, List<IConnectionCompositor<EObject, EObject, EObject>>>> handlersBySource) {
 		super(handlersBySource);
 	}
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/ConstraintCheckerServiceIntrospectionDetailsItem.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/ConstraintCheckerKISSDetailsItem.java
similarity index 89%
rename from org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/ConstraintCheckerServiceIntrospectionDetailsItem.java
rename to org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/ConstraintCheckerKISSDetailsItem.java
index d298a458c082340ae1fd661515b3f377025956e9..231b58db35fd6e16c568d3e58741f48c10e9f991 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/ConstraintCheckerServiceIntrospectionDetailsItem.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/ConstraintCheckerKISSDetailsItem.java
@@ -28,11 +28,11 @@ import org.fortiss.tooling.kernel.service.IConstraintCheckerService;
  * 
  * @author hoelzl
  */
-public final class ConstraintCheckerServiceIntrospectionDetailsItem
-		extends EObjectAwareIntrospectionDetailsItemBase<IConstraintChecker<EObject>> {
+public final class ConstraintCheckerKISSDetailsItem
+		extends EObjectAwareKISSDetailsItemBase<IConstraintChecker<EObject>> {
 
 	/** Constructor. */
-	public ConstraintCheckerServiceIntrospectionDetailsItem(
+	public ConstraintCheckerKISSDetailsItem(
 			Map<Class<?>, List<IConstraintChecker<EObject>>> handlerMap) {
 		super(handlerMap);
 	}
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/EObjectAware2IntrospectionDetailsItemBase.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/EObjectAware2KISSDetailsItemBase.java
similarity index 96%
rename from org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/EObjectAware2IntrospectionDetailsItemBase.java
rename to org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/EObjectAware2KISSDetailsItemBase.java
index 989074df3614be4e2bbe08d42f131e6e28f76be1..4b0a7db4a86790ba8483fd9e89cef6a58f197955 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/EObjectAware2IntrospectionDetailsItemBase.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/EObjectAware2KISSDetailsItemBase.java
@@ -35,14 +35,14 @@ import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
  * 
  * @author hoelzl
  */
-public abstract class EObjectAware2IntrospectionDetailsItemBase<T extends Object>
+public abstract class EObjectAware2KISSDetailsItemBase<T extends Object>
 		implements IIntrospectionDetailsItem {
 
 	/** Read-only copy of the services handler list. */
 	protected final Map<Class<?>, Map<Class<?>, List<T>>> handlerMap;
 
 	/** Constructor. */
-	public EObjectAware2IntrospectionDetailsItemBase(
+	public EObjectAware2KISSDetailsItemBase(
 			Map<Class<?>, Map<Class<?>, List<T>>> handlerMap) {
 		this.handlerMap = handlerMap;
 	}
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/EObjectAwareIntrospectionDetailsItemBase.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/EObjectAwareKISSDetailsItemBase.java
similarity index 93%
rename from org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/EObjectAwareIntrospectionDetailsItemBase.java
rename to org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/EObjectAwareKISSDetailsItemBase.java
index 9da902642592eef8ab9ef6fa81afca04a487cd02..45d235bff6440100df2c5b0bd9ab7c60ca5e6fb8 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/EObjectAwareIntrospectionDetailsItemBase.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/EObjectAwareKISSDetailsItemBase.java
@@ -33,14 +33,14 @@ import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
  * 
  * @author hoelzl
  */
-public abstract class EObjectAwareIntrospectionDetailsItemBase<T extends Object>
+public abstract class EObjectAwareKISSDetailsItemBase<T extends Object>
 		implements IIntrospectionDetailsItem {
 
 	/** Read-only copy of the services handler list. */
 	protected final Map<Class<?>, List<T>> handlerMap;
 
 	/** Constructor. */
-	public EObjectAwareIntrospectionDetailsItemBase(Map<Class<?>, List<T>> handlerMap) {
+	public EObjectAwareKISSDetailsItemBase(Map<Class<?>, List<T>> handlerMap) {
 		this.handlerMap = handlerMap;
 	}
 
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/EclipseResourceStorageServiceIntrospectionDetailsItem.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/EclipseResourceStorageKISSDetailsItem.java
similarity index 95%
rename from org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/EclipseResourceStorageServiceIntrospectionDetailsItem.java
rename to org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/EclipseResourceStorageKISSDetailsItem.java
index 029a4571636c00694d89cd3bd23890013788c694..d2a9cd0310528a518364e0be6cc65ac97f551109 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/EclipseResourceStorageServiceIntrospectionDetailsItem.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/EclipseResourceStorageKISSDetailsItem.java
@@ -29,7 +29,7 @@ import org.fortiss.tooling.kernel.service.IEclipseResourceStorageService;
  * 
  * @author hoelzl
  */
-public final class EclipseResourceStorageServiceIntrospectionDetailsItem
+public final class EclipseResourceStorageKISSDetailsItem
 		implements IIntrospectionDetailsItem {
 
 	/** Stores the registered storage providers. */
@@ -42,7 +42,7 @@ public final class EclipseResourceStorageServiceIntrospectionDetailsItem
 	private final List<ModelStorageError> errorFiles;
 
 	/** Constructor. */
-	public EclipseResourceStorageServiceIntrospectionDetailsItem(
+	public EclipseResourceStorageKISSDetailsItem(
 			List<IEclipseResourceStorageLocationProvider> storageProviderList,
 			Collection<IFile> loadedContexts, List<ModelStorageError> errorFiles) {
 		this.storageProviderList = storageProviderList;
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/ElementCompositorServiceIntrospectionDetailsItem.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/ElementCompositorKISSDetailsItem.java
similarity index 89%
rename from org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/ElementCompositorServiceIntrospectionDetailsItem.java
rename to org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/ElementCompositorKISSDetailsItem.java
index 7b500c302eacec901c341b595a4376077d343805..932775656f0afa0de489497617f30d78f7044ca7 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/ElementCompositorServiceIntrospectionDetailsItem.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/ElementCompositorKISSDetailsItem.java
@@ -28,11 +28,11 @@ import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
  * 
  * @author hoelzl
  */
-public final class ElementCompositorServiceIntrospectionDetailsItem
-		extends EObjectAwareIntrospectionDetailsItemBase<IElementCompositor<EObject>> {
+public final class ElementCompositorKISSDetailsItem
+		extends EObjectAwareKISSDetailsItemBase<IElementCompositor<EObject>> {
 
 	/** Constructor. */
-	public ElementCompositorServiceIntrospectionDetailsItem(
+	public ElementCompositorKISSDetailsItem(
 			Map<Class<?>, List<IElementCompositor<EObject>>> handlers) {
 		super(handlers);
 	}
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/HandlerListIntrospectionDetailsItemBase.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/HandlerListKISSDetailsItemBase.java
similarity index 92%
rename from org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/HandlerListIntrospectionDetailsItemBase.java
rename to org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/HandlerListKISSDetailsItemBase.java
index c715c41a16949e242d41bd4aaacc5e60ec038ad3..8ef06b5ba28b0d4e1ecf17c7fd4489a5287e36d4 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/HandlerListIntrospectionDetailsItemBase.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/HandlerListKISSDetailsItemBase.java
@@ -28,14 +28,14 @@ import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
  * 
  * @author hoelzl
  */
-public abstract class HandlerListIntrospectionDetailsItemBase<T extends Object>
+public abstract class HandlerListKISSDetailsItemBase<T extends Object>
 		implements IIntrospectionDetailsItem {
 
 	/** Read-only copy of the services handler list. */
 	protected final List<T> handlerList;
 
 	/** Constructor. */
-	public HandlerListIntrospectionDetailsItemBase(List<T> handlerList) {
+	public HandlerListKISSDetailsItemBase(List<T> handlerList) {
 		this.handlerList = handlerList;
 	}
 
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/LibraryServiceIntrospectionDetailsItem.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/LibraryKISSDetailsItem.java
similarity index 89%
rename from org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/LibraryServiceIntrospectionDetailsItem.java
rename to org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/LibraryKISSDetailsItem.java
index e28c0d0c68d78c302631453e5d81fa51726d4f14..d23d29838c290d14b2b2cf99d4b2c2f2e2d6f6b7 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/LibraryServiceIntrospectionDetailsItem.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/LibraryKISSDetailsItem.java
@@ -28,11 +28,11 @@ import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
  * 
  * @author hoelzl
  */
-public final class LibraryServiceIntrospectionDetailsItem
-		extends EObjectAwareIntrospectionDetailsItemBase<ILibraryElementHandler<EObject>> {
+public final class LibraryKISSDetailsItem
+		extends EObjectAwareKISSDetailsItemBase<ILibraryElementHandler<EObject>> {
 
 	/** Constructor. */
-	public LibraryServiceIntrospectionDetailsItem(
+	public LibraryKISSDetailsItem(
 			Map<Class<?>, List<ILibraryElementHandler<EObject>>> handlerMap) {
 		super(handlerMap);
 	}
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/MigrationServiceIntrospectionDetailsItem.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/MigrationKISSDetailsItem.java
similarity index 90%
rename from org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/MigrationServiceIntrospectionDetailsItem.java
rename to org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/MigrationKISSDetailsItem.java
index bd1047ae6790bdfceac484b6fcf50fa9c8d229de..2411c72ca2c0637ae6966c89fbd4f4c3bc55ba04 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/MigrationServiceIntrospectionDetailsItem.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/MigrationKISSDetailsItem.java
@@ -27,11 +27,11 @@ import org.fortiss.tooling.kernel.introspection.IIntrospectionDetailsItem;
  * 
  * @author hoelzl
  */
-public final class MigrationServiceIntrospectionDetailsItem
-		extends EObjectAwareIntrospectionDetailsItemBase<IMigrationProvider> {
+public final class MigrationKISSDetailsItem
+		extends EObjectAwareKISSDetailsItemBase<IMigrationProvider> {
 
 	/** Constructor. */
-	public MigrationServiceIntrospectionDetailsItem(
+	public MigrationKISSDetailsItem(
 			Map<Class<?>, List<IMigrationProvider>> handlers) {
 		super(handlers);
 	}
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/PersistencyServiceIntrospectionDetailsItem.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/PersistencyKISSDetailsItem.java
similarity index 90%
rename from org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/PersistencyServiceIntrospectionDetailsItem.java
rename to org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/PersistencyKISSDetailsItem.java
index a7009895eed0e9d662be1639a31c27ff4114a676..1afa6a1254150a4dd61bc9c22837ac442931d524 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/PersistencyServiceIntrospectionDetailsItem.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/PersistencyKISSDetailsItem.java
@@ -26,13 +26,13 @@ import org.fortiss.tooling.kernel.service.IPersistencyService;
  * 
  * @author hoelzl
  */
-public final class PersistencyServiceIntrospectionDetailsItem implements IIntrospectionDetailsItem {
+public final class PersistencyKISSDetailsItem implements IIntrospectionDetailsItem {
 
 	/** The storage providers. */
 	private final Collection<IStorageProvider> providers;
 
 	/** Constructor. */
-	public PersistencyServiceIntrospectionDetailsItem(Collection<IStorageProvider> providers) {
+	public PersistencyKISSDetailsItem(Collection<IStorageProvider> providers) {
 		this.providers = providers;
 	}
 
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/PrototypeServiceIntrospectionDetailsItem.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/PrototypeKISSDetailsItem.java
similarity index 87%
rename from org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/PrototypeServiceIntrospectionDetailsItem.java
rename to org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/PrototypeKISSDetailsItem.java
index 6f108541a632c33dbc5a547d7f7908c0287f9a67..4af5eda84a717ca471c70d4e801a17a103ec391b 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/PrototypeServiceIntrospectionDetailsItem.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/PrototypeKISSDetailsItem.java
@@ -26,11 +26,11 @@ import org.fortiss.tooling.kernel.service.IPrototypeService;
  * 
  * @author hoelzl
  */
-public final class PrototypeServiceIntrospectionDetailsItem
-		extends HandlerListIntrospectionDetailsItemBase<IPrototypeProvider> {
+public final class PrototypeKISSDetailsItem
+		extends HandlerListKISSDetailsItemBase<IPrototypeProvider> {
 
 	/** Constructor. */
-	public PrototypeServiceIntrospectionDetailsItem(List<IPrototypeProvider> handlerList) {
+	public PrototypeKISSDetailsItem(List<IPrototypeProvider> handlerList) {
 		super(handlerList);
 	}
 }
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/TransformationServiceIntrospectionDetailsItem.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/TransformationKISSDetailsItem.java
similarity index 89%
rename from org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/TransformationServiceIntrospectionDetailsItem.java
rename to org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/TransformationKISSDetailsItem.java
index c0a076c3feaae46ffe7374c0926c1a81e3bb05ca..f2fc5a23bbc911f66c91d8d0b6ce3e03db369447 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/TransformationServiceIntrospectionDetailsItem.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/introspection/items/TransformationKISSDetailsItem.java
@@ -27,11 +27,11 @@ import org.fortiss.tooling.kernel.service.ITransformationService;
  * 
  * @author hoelzl
  */
-public final class TransformationServiceIntrospectionDetailsItem
-		extends EObjectAware2IntrospectionDetailsItemBase<ITransformationProvider> {
+public final class TransformationKISSDetailsItem
+		extends EObjectAware2KISSDetailsItemBase<ITransformationProvider> {
 
 	/** Constructor. */
-	public TransformationServiceIntrospectionDetailsItem(
+	public TransformationKISSDetailsItem(
 			Map<Class<?>, Map<Class<?>, List<ITransformationProvider>>> handlerMap) {
 		super(handlerMap);
 	}