diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PrototypeService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PrototypeService.java
index 229d85e28fcb5ca793233258f22e6656ee50886e..0eeefe04d145d1afbf6aeae5c041701dfcab3d60 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PrototypeService.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PrototypeService.java
@@ -47,7 +47,7 @@ public class PrototypeService implements IPrototypeService {
 	private static final String CONFIGURATION_ELEMENT_NAME = "modelPrototypeProvider";
 
 	/** Stores the registered prototype providers. */
-	private final List<IPrototypeProvider> prototypeList = new ArrayList<IPrototypeProvider>();
+	private final List<IPrototypeProvider> prototypeProviderList = new ArrayList<IPrototypeProvider>();
 
 	/** Constructor. */
 	public PrototypeService() {
@@ -65,7 +65,7 @@ public class PrototypeService implements IPrototypeService {
 						ce.getAttribute("provider"), bundle);
 				IPrototypeProvider provider = (IPrototypeProvider) handlerClass
 						.getConstructor().newInstance();
-				prototypeList.add(provider);
+				prototypeProviderList.add(provider);
 			} catch (Exception ex) {
 				LoggingUtils.error(ToolingKernelActivator.getDefault(),
 						ex.getMessage(), ex);
@@ -76,6 +76,16 @@ public class PrototypeService implements IPrototypeService {
 	/** {@inheritDoc} */
 	@Override
 	public UnmodifiableList<IPrototypeProvider> getPrototypeProviders() {
-		return CollectionUtils.asUnmodifiable(prototypeList);
+		return CollectionUtils.asUnmodifiable(prototypeProviderList);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public UnmodifiableList<Prototype> getAllPrototypes() {
+		List<Prototype> result = new ArrayList<Prototype>();
+		for (IPrototypeProvider provider : prototypeProviderList) {
+			result.addAll(provider.getPrototypes());
+		}
+		return CollectionUtils.asUnmodifiable(result);
 	}
 }
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/views/LibraryView.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/views/LibraryView.java
index 0ac4d7d1b1a3e3d5e01084f3bdef808ef70141fb..b39966f3c24457eb39d600a7b0bbfa42a53d307d 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/views/LibraryView.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/views/LibraryView.java
@@ -17,23 +17,22 @@ $Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
 +--------------------------------------------------------------------------*/
 package org.fortiss.tooling.kernel.internal.views;
 
-import org.eclipse.emf.ecore.EObject;
 import org.eclipse.gef.dnd.TemplateTransfer;
 import org.eclipse.jface.util.LocalSelectionTransfer;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.dnd.DND;
 import org.eclipse.swt.dnd.Transfer;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.dialogs.FilteredTree;
 import org.eclipse.ui.dialogs.PatternFilter;
 import org.eclipse.ui.part.ViewPart;
-import org.fortiss.tooling.kernel.internal.editor.BindingEditor;
 import org.fortiss.tooling.kernel.services.IPrototypeService;
+import org.fortiss.tooling.kernel.services.IPrototypeService.Prototype;
 
 /**
  * 
@@ -44,42 +43,13 @@ import org.fortiss.tooling.kernel.services.IPrototypeService;
  */
 public class LibraryView extends ViewPart {
 
-	/** Used to show the filter box */
-	private FilteredTree filteredTree;
+	TreeViewer viewer;
 
-	/** Library Viewer */
-	private TreeViewer viewer;
-
-	/** Listens to Editor Activations */
-	// TODO (JE): implement EditorActivationListener
-	// private final EditorActivationListener editorActivationListener = new
-	// EditorActivationListener();
-
-	/** Current active {@link BindingEditor}. */
-	private BindingEditor activeBindingEditor;
-
-	/** The container object used. */
-	private EObject containerObject = null;
+	FilteredTree filteredTree;
 
 	/** {@inheritDoc} */
 	@Override
 	public void createPartControl(Composite parent) {
-		viewer = new TreeViewer(parent);
-
-		IWorkbenchPage page = getViewSite().getWorkbenchWindow()
-				.getActivePage();
-
-		// if (page != null) { switchWorkbenchEditor(page.getActiveEditor()); }
-
-		getViewSite().setSelectionProvider(viewer);
-		// getSite().getWorkbenchWindow().getPartService()
-		// .addPartListener(editorActivationListener);
-
-	}
-
-	/** creates the viewer */
-	public void createViewer(Composite parent) {
-
 		PatternFilter patternFilter = new PatternFilter();
 		patternFilter.setIncludeLeadingWildcard(true);
 
@@ -90,30 +60,21 @@ public class LibraryView extends ViewPart {
 		viewer.setContentProvider(new ITreeContentProvider() {
 
 			@Override
-			public void inputChanged(Viewer viewer, Object oldInput,
-					Object newInput) {
+			public Object[] getChildren(Object parentElement) {
 				// TODO Auto-generated method stub
-
+				return null;
 			}
 
 			@Override
-			public void dispose() {
-				// TODO Auto-generated method stub
-
+			public Object getParent(Object element) {
+				return null;
 			}
 
 			@Override
 			public boolean hasChildren(Object element) {
-				// TODO Auto-generated method stub
 				return false;
 			}
 
-			@Override
-			public Object getParent(Object element) {
-				// TODO Auto-generated method stub
-				return null;
-			}
-
 			@Override
 			public Object[] getElements(Object inputElement) {
 				if (inputElement instanceof Object[]) {
@@ -123,36 +84,38 @@ public class LibraryView extends ViewPart {
 			}
 
 			@Override
-			public Object[] getChildren(Object parentElement) {
+			public void dispose() {
 				// TODO Auto-generated method stub
-				return null;
+
 			}
-		});
 
-		viewer.setLabelProvider(new LabelProvider());
+			@Override
+			public void inputChanged(Viewer viewer, Object oldInput,
+					Object newInput) {
+				// TODO Auto-generated method stub
 
+			}
+		});
+		viewer.setLabelProvider(new LibraryLabelProvider());
 		viewer.addDragSupport(DND.DROP_COPY,
 				new Transfer[] { TemplateTransfer.getInstance(),
 						LocalSelectionTransfer.getTransfer() },
 				new EObjectDragSourceListener(viewer));
 
-		// viewer.setInput(PrototypeMananger.getInstance().getPrototypes()
-		// .toArray());
+		viewer.setInput(IPrototypeService.INSTANCE.getAllPrototypes().toArray());
 
-		viewer.setInput(IPrototypeService.INSTANCE.getPrototypeProviders()
-				.toArray());
+		viewer.addFilter(new ViewerFilter() {
 
-		/*
-		 * viewer.addFilter(new ViewerFilter() {
-		 * 
-		 * @Override public boolean select(Viewer viewer, Object parentElement,
-		 * Object element) { if (element instanceof Prototype) { EObject
-		 * prototypeObject = ((Prototype) element) .getPrototype(); //
-		 * CompositorManager // return
-		 * CompositionManager.getInstance().canCompose( // containerObject,
-		 * prototypeObject, null); } return false; } });
-		 */
+			@Override
+			public boolean select(Viewer viewer, Object parentElement,
+					Object element) {
+				// TODO Auto-generated method stub
+				return true;
+			}
 
+		});
+
+		getViewSite().setSelectionProvider(viewer);
 	}
 
 	/** {@inheritDoc} */
@@ -161,4 +124,25 @@ public class LibraryView extends ViewPart {
 		viewer.getControl().setFocus();
 	}
 
+	/** The label provider used here-in. */
+	private class LibraryLabelProvider extends LabelProvider {
+
+		/** {@inheritDoc} */
+		@Override
+		public String getText(Object element) {
+			if (element instanceof Prototype) {
+				Prototype prototype = (Prototype) element;
+				return prototype.getName();
+			}
+			return super.getText(element);
+		}
+
+		// TODO (JE): getImage
+		/*
+		 * @Override public Image getImage(Object element) { if (element
+		 * instanceof Prototype) { Prototype prototype = (Prototype) element;
+		 * return ModelElementService.getInstance().getImage(
+		 * prototype.getPrototypeObject()); } return super.getImage(element); }
+		 */
+	}
 }
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/IPrototypeService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/IPrototypeService.java
index 8ab4ec7575123ef19b9ef953e9a7a22f81af8cac..edf4c126bf6db770ab8d15d0d0d50c137523a121 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/IPrototypeService.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/IPrototypeService.java
@@ -40,6 +40,9 @@ public interface IPrototypeService {
 	/** Returns the list of all registered prototype providers. */
 	UnmodifiableList<IPrototypeProvider> getPrototypeProviders();
 
+	/** Returns the list of all prototypes registered any provider. */
+	UnmodifiableList<Prototype> getAllPrototypes();
+
 	/**
 	 * Prototypes consist of a generic description and preconfigured
 	 * {@link EObject}.