diff --git a/Kieker.WebGUI/src/main/java/kieker/beans/AvailablePluginsBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/AvailablePluginsBean.java
similarity index 95%
rename from Kieker.WebGUI/src/main/java/kieker/beans/AvailablePluginsBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/beans/AvailablePluginsBean.java
index 89458881ba6acf9c3d9d6dd78861f71647802d32..f1be8d02406d5ff4fd1f33961a21b1714aecd59d 100644
--- a/Kieker.WebGUI/src/main/java/kieker/beans/AvailablePluginsBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/AvailablePluginsBean.java
@@ -1,4 +1,4 @@
-package kieker.beans;
+package kieker.webgui.beans;
 
 import javax.faces.bean.ManagedBean;
 import javax.faces.bean.RequestScoped;
diff --git a/Kieker.WebGUI/src/main/java/kieker/beans/ComponentBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/ComponentBean.java
similarity index 98%
rename from Kieker.WebGUI/src/main/java/kieker/beans/ComponentBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/beans/ComponentBean.java
index 6938d17e684d5eae89767fc950180f0acff7939a..3b47ebd4a4471ff061d1c5d91432e9cf353dc8c8 100644
--- a/Kieker.WebGUI/src/main/java/kieker/beans/ComponentBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/ComponentBean.java
@@ -1,4 +1,4 @@
-package kieker.beans;
+package kieker.webgui.beans;
 
 import javax.faces.bean.ApplicationScoped;
 import javax.faces.bean.ManagedBean;
diff --git a/Kieker.WebGUI/src/main/java/kieker/beans/CurrentProjectBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/CurrentProjectBean.java
similarity index 91%
rename from Kieker.WebGUI/src/main/java/kieker/beans/CurrentProjectBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/beans/CurrentProjectBean.java
index f6d4671929f4cc03947944bd7ff194d10e10a5ef..162bc70f308a0685fbd59fd5df61dfccac3ea094 100644
--- a/Kieker.WebGUI/src/main/java/kieker/beans/CurrentProjectBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/CurrentProjectBean.java
@@ -1,4 +1,4 @@
-package kieker.beans;
+package kieker.webgui.beans;
 
 import kieker.analysis.model.analysisMetaModel.MIProject;
 
diff --git a/Kieker.WebGUI/src/main/java/kieker/beans/CurrentSelectedPluginBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/CurrentSelectedPluginBean.java
similarity index 76%
rename from Kieker.WebGUI/src/main/java/kieker/beans/CurrentSelectedPluginBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/beans/CurrentSelectedPluginBean.java
index 630ca5c273a7e316e2740ae58e9268709cee56b8..af89429067a375e74c2d4f6d3c64ca11eecb5c79 100644
--- a/Kieker.WebGUI/src/main/java/kieker/beans/CurrentSelectedPluginBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/CurrentSelectedPluginBean.java
@@ -1,4 +1,4 @@
-package kieker.beans;
+package kieker.webgui.beans;
 
 /**
  *
diff --git a/Kieker.WebGUI/src/main/java/kieker/beans/ProjectsBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/ProjectsBean.java
similarity index 98%
rename from Kieker.WebGUI/src/main/java/kieker/beans/ProjectsBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/beans/ProjectsBean.java
index 9f18ed15bb5290fd08a1e017dbb749d73a505cce..1e6683965ef91e11227449cb83dd67b721398ca5 100644
--- a/Kieker.WebGUI/src/main/java/kieker/beans/ProjectsBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/ProjectsBean.java
@@ -1,4 +1,4 @@
-package kieker.beans;
+package kieker.webgui.beans;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/StringBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/StringBean.java
new file mode 100644
index 0000000000000000000000000000000000000000..b14a57e282948636cde2f99a4bc84429f409698b
--- /dev/null
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/StringBean.java
@@ -0,0 +1,24 @@
+package kieker.webgui.beans;
+
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.RequestScoped;
+
+/**
+ *
+ * @author Nils Christian Ehmke
+ */
+@ManagedBean
+@RequestScoped
+public class StringBean {
+
+    private String string;
+
+    public String getString() {
+        return string;
+    }
+
+    public void setString(String string) {
+        this.string = string;
+    }
+
+}
diff --git a/Kieker.WebGUI/src/main/java/kieker/beans/TreeBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/TreeBean.java
similarity index 97%
rename from Kieker.WebGUI/src/main/java/kieker/beans/TreeBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/beans/TreeBean.java
index 0d2ecfc972cd04fcc6f3082facc61ce47b7de660..9f8112ae8f3eee49382417858af4c0966a8921d5 100644
--- a/Kieker.WebGUI/src/main/java/kieker/beans/TreeBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/TreeBean.java
@@ -1,4 +1,4 @@
-package kieker.beans;
+package kieker.webgui.beans;
 
 import javax.faces.bean.ApplicationScoped;
 import javax.faces.bean.ManagedBean;
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginFinder.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginFinder.java
new file mode 100644
index 0000000000000000000000000000000000000000..2c96f898c1a21c2adc551de912db09078442b221
--- /dev/null
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginFinder.java
@@ -0,0 +1,39 @@
+package kieker.webgui.common;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+import kieker.analysis.plugin.port.Plugin;
+
+/**
+ * @author Nils Christian Ehmke
+ */
+public class PluginFinder {
+
+    public static List<Class<?>> getAllPluginsWithinJar(final URL url) throws IOException {
+        final ClassLoader classLoader = new URLClassLoader(new URL[]{url});
+        final JarFile jarFile = new JarFile(new File(url.getPath()));
+        final List<Class<?>> result = new ArrayList<Class<?>>();
+        Enumeration<JarEntry> jarEntries = jarFile.entries();
+        while (jarEntries.hasMoreElements()) {
+            JarEntry jarEntry = (JarEntry) jarEntries.nextElement();
+            try {
+                String name = jarEntry.toString();
+                name = name.replace('/', '.');
+                name = name.replace(".class", "");
+                Class<?> c = classLoader.loadClass(name);
+                if (c.isAnnotationPresent(Plugin.class)) {
+                    result.add(c);
+                }
+            } catch (Throwable ex) {
+            }
+        }
+        return result;
+    }
+}
diff --git a/Kieker.WebGUI/src/main/webapp/main.xhtml b/Kieker.WebGUI/src/main/webapp/main.xhtml
index cc18abb311c728f845161964eab5f8e5cd7ef220..1e1bfa88f1b185252db55310fe92c481939ed744 100644
--- a/Kieker.WebGUI/src/main/webapp/main.xhtml
+++ b/Kieker.WebGUI/src/main/webapp/main.xhtml
@@ -33,7 +33,7 @@
                     <h:form>
                         <p:menubar style="font-size: 15px">  
                             <p:submenu label="Projects">
-                                <p:menuitem value="New Project" action="#{projectsBean.addProject('NewProject')}" ajax="true" update="ProjectsList"/>
+                                <p:menuitem value="New Project" onclick="NewProjectDialog.show();" ajax="true" update="ProjectsList"/>
                                 <p:menuitem value="Save Project"/>
                                 <p:separator /> 
                                 <p:menuitem value="Delete Project"/>
@@ -115,6 +115,16 @@
             <h:outputText value="Copyright (c) 2011 Kieker Project"/> <br/><br/>
             <a href="https://se.informatik.uni-kiel.de/kieker/">https://se.informatik.uni-kiel.de/kieker/</a>
         </p:dialog>
+
+        <p:dialog header="New Project" resizable="false" modal="true" style="font-size: 15px;width: auto" widgetVar="NewProjectDialog">
+            <h:form>
+                <h:outputText value="Please enter the name of the new project: " /><br/><br/>
+                <center>
+                    <p:inputText style="width: 90%" value="#{stringBean.string}" /><br/><br/>
+                    <p:commandButton value="Submit" action="#{projectsBean.addProject(stringBean.string)}" update="ProjectsList" oncomplete="NewProjectDialog.hide();"/>
+                </center>
+            </h:form>
+        </p:dialog>
     </f:view>
 </html>