diff --git a/.gitignore b/.gitignore
index b6c00def98cbee979b7c8e4d583d8b28da474cac..f6eef68764e006bfd771c54e32cbcaa1e9efa6fc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,5 @@
-# Gradle
-.gradle
-/build/
+#Maven
+/target
 
 # Java
 *.class
@@ -11,3 +10,4 @@
 /.settings/org.eclipse.buildship.core.prefs
 /.settings/org.eclipse.jdt.core.prefs
 /bin/de
+/.gradle/
diff --git a/build.gradle b/build.gradle
deleted file mode 100644
index efe952b1fbe9440f88333aee0f931e6a16577af8..0000000000000000000000000000000000000000
--- a/build.gradle
+++ /dev/null
@@ -1,27 +0,0 @@
-plugins {
-  id 'maven'
-}
-
-apply plugin: 'java'
-
-
-group = 'de.hhu.bcs'
-version = '0.0.1-SNAPSHOT'
-description = """yoshikoWrapper"""
-
-sourceCompatibility = 1.8
-targetCompatibility = 1.8
-
-repositories {
-     maven { url "http://code.cytoscape.org/nexus/content/repositories/snapshots/" }
-     maven { url "http://code.cytoscape.org/nexus/content/repositories/releases/" }
-     maven { url "http://repo.maven.apache.org/maven2" }
-}
-
-dependencies {
-    compile group: 'org.osgi', name: 'org.osgi.core', version:'4.2.0'
-    compile group: 'org.cytoscape', name: 'service-api', version:'3.5.0-RC2'
-    compile group: 'org.cytoscape', name: 'swing-application-api', version:'3.5.0-RC2'
-    compile group: 'org.cytoscape', name: 'session-api', version:'3.5.0-RC2'
-    compile group: 'org.ops4j.pax.logging', name: 'pax-logging-api', version:'1.5.2'
-}
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index 94028048d0056911c625a3485f7a9f8930e878c1..0000000000000000000000000000000000000000
Binary files a/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index 1549331b7c0abb345bdf62c9d4e0f8f73e40db61..0000000000000000000000000000000000000000
--- a/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-#Fri Jul 28 17:36:49 CEST 2017
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.4-bin.zip
diff --git a/gradlew b/gradlew
deleted file mode 100755
index 4453ccea33d960069d9137ee65f6b21fc65e7e92..0000000000000000000000000000000000000000
--- a/gradlew
+++ /dev/null
@@ -1,172 +0,0 @@
-#!/usr/bin/env sh
-
-##############################################################################
-##
-##  Gradle start up script for UN*X
-##
-##############################################################################
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
-    ls=`ls -ld "$PRG"`
-    link=`expr "$ls" : '.*-> \(.*\)$'`
-    if expr "$link" : '/.*' > /dev/null; then
-        PRG="$link"
-    else
-        PRG=`dirname "$PRG"`"/$link"
-    fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
-    echo "$*"
-}
-
-die ( ) {
-    echo
-    echo "$*"
-    echo
-    exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-nonstop=false
-case "`uname`" in
-  CYGWIN* )
-    cygwin=true
-    ;;
-  Darwin* )
-    darwin=true
-    ;;
-  MINGW* )
-    msys=true
-    ;;
-  NONSTOP* )
-    nonstop=true
-    ;;
-esac
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
-    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
-        # IBM's JDK on AIX uses strange locations for the executables
-        JAVACMD="$JAVA_HOME/jre/sh/java"
-    else
-        JAVACMD="$JAVA_HOME/bin/java"
-    fi
-    if [ ! -x "$JAVACMD" ] ; then
-        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-    fi
-else
-    JAVACMD="java"
-    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
-    MAX_FD_LIMIT=`ulimit -H -n`
-    if [ $? -eq 0 ] ; then
-        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
-            MAX_FD="$MAX_FD_LIMIT"
-        fi
-        ulimit -n $MAX_FD
-        if [ $? -ne 0 ] ; then
-            warn "Could not set maximum file descriptor limit: $MAX_FD"
-        fi
-    else
-        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
-    fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
-    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
-    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
-    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-    JAVACMD=`cygpath --unix "$JAVACMD"`
-
-    # We build the pattern for arguments to be converted via cygpath
-    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
-    SEP=""
-    for dir in $ROOTDIRSRAW ; do
-        ROOTDIRS="$ROOTDIRS$SEP$dir"
-        SEP="|"
-    done
-    OURCYGPATTERN="(^($ROOTDIRS))"
-    # Add a user-defined pattern to the cygpath arguments
-    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
-        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
-    fi
-    # Now convert the arguments - kludge to limit ourselves to /bin/sh
-    i=0
-    for arg in "$@" ; do
-        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
-        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
-
-        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
-            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
-        else
-            eval `echo args$i`="\"$arg\""
-        fi
-        i=$((i+1))
-    done
-    case $i in
-        (0) set -- ;;
-        (1) set -- "$args0" ;;
-        (2) set -- "$args0" "$args1" ;;
-        (3) set -- "$args0" "$args1" "$args2" ;;
-        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
-        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
-        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
-        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
-        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
-        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
-    esac
-fi
-
-# Escape application args
-save ( ) {
-    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
-    echo " "
-}
-APP_ARGS=$(save "$@")
-
-# Collect all arguments for the java command, following the shell quoting and substitution rules
-eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
-
-# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
-if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
-  cd "$(dirname "$0")"
-fi
-
-exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
deleted file mode 100644
index e95643d6a2ca62258464e83c72f5156dc941c609..0000000000000000000000000000000000000000
--- a/gradlew.bat
+++ /dev/null
@@ -1,84 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem  Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/pom.xml b/pom.xml
index 2d672442a56022378bb7777cb586311ffd0b37ef..f12c3a6c5af44da5ca9345d575bfc866d0d497f1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,49 +1,31 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	
 	<properties>
-						<bundle.symbolicName>de.hhu.bcs.yoshikoWrapper</bundle.symbolicName>
-		<bundle.namespace>de.hhu.bcs.yoshikoWrapper</bundle.namespace>
+		<bundle.symbolicName>org.cytoscape.sample-control-panel</bundle.symbolicName>
+		<bundle.namespace>org.cytoscape.sample.internal</bundle.namespace>
+		<cytoscape.api.version>3.0.0</cytoscape.api.version>
+		
+		<maven-bundle-plugin.version>2.3.4</maven-bundle-plugin.version>
+		<osgi.api.version>4.2.0</osgi.api.version>
 	</properties>
 
-	<modelVersion>4.0.0</modelVersion>
-	<groupId>de.hhu.bcs</groupId>
+	<groupId>de.hhu.ba</groupId>
 	<artifactId>yoshikoWrapper</artifactId>
-	<version>0.0.1-SNAPSHOT</version>
-
-	<name>yoshikoWrapper</name>
+	<version>0.0.1</version>
+	
+	<name>YoshikoWrapper</name>
 
 	<build>
-		<resources>
-			<resource>
-				<directory>src/main/resources</directory>
-			</resource>
-		</resources>
-		<!-- Cytoscape requires Java 1.8 -->
 		<plugins>
 			<plugin>
+				<inherited>true</inherited>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-compiler-plugin</artifactId>
-				<version>2.3.2</version>
-				<executions>
-					<execution>
-						<id>default-testCompile</id>
-						<phase>test-compile</phase>
-						<goals>
-							<goal>testCompile</goal>
-						</goals>
-					</execution>
-					<execution>
-						<id>default-compile</id>
-						<phase>compile</phase>
-						<goals>
-							<goal>compile</goal>
-						</goals>
-					</execution>
-				</executions>
+				<version>3.0</version>
 				<configuration>
-					<source>1.8</source>
-					<target>1.8</target>
+					<source>1.6</source>
+					<target>1.6</target>
 					<optimize>true</optimize>
 					<showWarnings>true</showWarnings>
 					<showDeprecation>true</showDeprecation>
@@ -53,28 +35,19 @@
 					</compilerArguments>
 				</configuration>
 			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-surefire-plugin</artifactId>
-				<version>2.7.1</version>
-				<configuration>
-					<redirectTestOutputToFile>true</redirectTestOutputToFile>
-				</configuration>
-			</plugin>
-			<!-- Generates the OSGi metadata based on the osgi.bnd file. -->
 			<plugin>
 				<groupId>org.apache.felix</groupId>
 				<artifactId>maven-bundle-plugin</artifactId>
-				<version>2.3.7</version>
+				<version>${maven-bundle-plugin.version}</version>
 				<extensions>true</extensions>
 				<configuration>
 					<instructions>
-												<Bundle-SymbolicName>${bundle.symbolicName}</Bundle-SymbolicName>
+						<Bundle-SymbolicName>${bundle.symbolicName}</Bundle-SymbolicName>
 						<Bundle-Version>${project.version}</Bundle-Version>
-						<Export-Package>${bundle.namespace}</Export-Package>
-						<Private-Package>${bundle.namespace}.internal.*</Private-Package>
-						<Bundle-Activator>${bundle.namespace}.internal.CyActivator</Bundle-Activator>
-											</instructions>
+						<Export-Package>!${bundle.namespace}.*</Export-Package>
+						<Private-Package>${bundle.namespace}.*</Private-Package>
+						<Bundle-Activator>${bundle.namespace}.CyActivator</Bundle-Activator>
+					</instructions>
 				</configuration>
 			</plugin>
 		</plugins>
@@ -85,6 +58,7 @@
 		<repository>
 			<id>cytoscape_snapshots</id>
 			<snapshots>
+				<enabled>true</enabled>
 			</snapshots>
 			<releases>
 				<enabled>false</enabled>
@@ -98,45 +72,62 @@
 				<enabled>false</enabled>
 			</snapshots>
 			<releases>
+				<enabled>true</enabled>
 			</releases>
 			<name>Cytoscape Releases</name>
 			<url>http://code.cytoscape.org/nexus/content/repositories/releases/</url>
 		</repository>
 	</repositories>
 
-	<!-- Dependencies needed to compile this project. -->
 	<dependencies>
 		<dependency>
-			<groupId>org.osgi</groupId>
-			<artifactId>org.osgi.core</artifactId>
-			<version>4.2.0</version>
+			<groupId>org.cytoscape</groupId>
+			<artifactId>swing-application-api</artifactId>
+			<version>${cytoscape.api.version}</version>
 		</dependency>
-		
 		<dependency>
 			<groupId>org.cytoscape</groupId>
-			<artifactId>service-api</artifactId>
-			<version>3.5.0-RC2</version>
+			<artifactId>work-api</artifactId>
+			<version>${cytoscape.api.version}</version>
 		</dependency>
 		<dependency>
 			<groupId>org.cytoscape</groupId>
-			<artifactId>swing-application-api</artifactId>
-			<version>3.5.0-RC2</version>
+			<artifactId>service-api</artifactId>
+			<version>${cytoscape.api.version}</version>
 		</dependency>
 		<dependency>
-			<groupId>org.cytoscape</groupId>
-			<artifactId>session-api</artifactId>
-			<version>3.5.0-RC2</version>
+			<groupId>org.osgi</groupId>
+			<artifactId>org.osgi.core</artifactId>
+			<version>${osgi.api.version}</version>
 		</dependency>
 
-		<!-- Logging -->
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.8.2</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.mockito</groupId>
+			<artifactId>mockito-all</artifactId>
+			<version>1.8.5</version>
+			<scope>test</scope>
+		</dependency>
 		<dependency>
 			<groupId>org.ops4j.pax.logging</groupId>
 			<artifactId>pax-logging-api</artifactId>
 			<version>1.5.2</version>
-			<scope>provided</scope>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.cytoscape</groupId>
+			<artifactId>service-api</artifactId>
+			<version>${cytoscape.api.version}</version>
+			<type>test-jar</type>
+			<scope>test</scope>
 		</dependency>
-
 	</dependencies>
 
-	<description>A Java Application that wraps the yoshiko algorithm implemented in C++</description>
+	<description>A Cytoscape plugin for graph-based clustering that wraps the yoshiko algorithm.</description>
+	<packaging>bundle</packaging>
 </project>
diff --git a/settings.gradle b/settings.gradle
deleted file mode 100644
index 83349fdbdd75921c7e0036828d59e4f143e5bf13..0000000000000000000000000000000000000000
--- a/settings.gradle
+++ /dev/null
@@ -1 +0,0 @@
-rootProject.name = 'yoshikoWrapper'
diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/MainPanel.java b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/MainPanel.java
new file mode 100644
index 0000000000000000000000000000000000000000..99bc8522e2ef12fb74b1b4da623133444e6d2997
--- /dev/null
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/MainPanel.java
@@ -0,0 +1,58 @@
+package de.hhu.ba.yoshikoWrapper.gui;
+
+import java.awt.Component;
+
+import javax.swing.Icon;
+import javax.swing.JFileChooser;
+import javax.swing.JPanel;
+import org.cytoscape.application.swing.CytoPanelComponent;
+import org.cytoscape.application.swing.CytoPanelName;
+
+/**This class describes the Swing Panel that the user interacts with in cytoscape
+ * @author Philipp Spohr, Aug 6, 2017
+ *
+ */
+public class MainPanel extends JPanel implements CytoPanelComponent {
+
+	/**
+	 * Unique identifier for serialization
+	 */
+	private static final long serialVersionUID = 6214827920591046457L;
+
+
+	/**
+	 * Main constructor, creates a new Panel and intializes subcomponents
+	 */
+	public MainPanel() {
+		
+		JFileChooser yoshikoNativeChooser = new JFileChooser();
+		
+		this.add(yoshikoNativeChooser);
+		this.setVisible(true);
+	}
+
+
+	public Component getComponent() {
+		return this;
+	}
+
+
+	/* (non-Javadoc)
+	 * @see org.cytoscape.application.swing.CytoPanelComponent#getCytoPanelName()
+	 */
+	public CytoPanelName getCytoPanelName() {
+		//By convention most plugins that provide a "toolbox"-like interface use the WEST orientation
+		return CytoPanelName.WEST;
+	}
+
+	public String getTitle() {
+		//TODO: Be creative I guess
+		return "Yoshiko Wrapper Panel";
+	}
+
+
+	public Icon getIcon() {
+		//TODO: 
+		return null;
+	}
+}
diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/internal/CyActivator.java b/src/main/java/de/hhu/ba/yoshikoWrapper/internal/CyActivator.java
new file mode 100644
index 0000000000000000000000000000000000000000..76e6dc2fc5cd516d3a8c048b4b2c89b581c26627
--- /dev/null
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/internal/CyActivator.java
@@ -0,0 +1,33 @@
+package de.hhu.ba.yoshikoWrapper.internal;
+
+import java.util.Properties;
+
+import org.cytoscape.application.swing.CyAction;
+import org.cytoscape.application.swing.CySwingApplication;
+import org.cytoscape.application.swing.CytoPanelComponent;
+import org.cytoscape.service.util.AbstractCyActivator;
+import org.osgi.framework.BundleContext;
+
+import de.hhu.ba.yoshikoWrapper.gui.MainPanel;
+
+
+public class CyActivator extends AbstractCyActivator {
+	
+	public CyActivator() {
+		super();
+	}
+	
+	@Override
+	public void start(BundleContext context) throws Exception {
+		
+		CySwingApplication cytoscapeDesktopService = getService(context,CySwingApplication.class);
+		
+		MainPanel mainPanel = new MainPanel();
+		registerService(context,mainPanel,CytoPanelComponent.class, new Properties());
+		
+		MainPanelAction controlPanelAction = new MainPanelAction(cytoscapeDesktopService,mainPanel);
+		registerService(context,controlPanelAction,CyAction.class, new Properties());
+
+	}
+
+}
diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/internal/MainPanelAction.java b/src/main/java/de/hhu/ba/yoshikoWrapper/internal/MainPanelAction.java
new file mode 100644
index 0000000000000000000000000000000000000000..42f3103a67036b89804aeffd3058cff2899b37b5
--- /dev/null
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/internal/MainPanelAction.java
@@ -0,0 +1,48 @@
+package de.hhu.ba.yoshikoWrapper.internal;
+
+import java.awt.event.ActionEvent;
+
+import org.cytoscape.application.swing.AbstractCyAction;
+import org.cytoscape.application.swing.CySwingApplication;
+//import org.cytoscape.application.swing.CytoPanel;
+//import org.cytoscape.application.swing.CytoPanelName;
+
+import de.hhu.ba.yoshikoWrapper.gui.MainPanel;
+
+public class MainPanelAction extends AbstractCyAction {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -4710814976875737575L;
+	
+	//private CySwingApplication desktopApp;
+	//private final CytoPanel cytoPanelWest;
+	//private MainPanel mainPanel;
+	
+	/**Main constructor, generates a new CyAction handling the main panel
+	 * @param desktopApp
+	 * @param mainPanel
+	 */
+	public MainPanelAction(
+			CySwingApplication desktopApp,
+			MainPanel mainPanel
+			){
+
+		super("Control Panel");
+		
+		setPreferredMenu("Apps.Clustering");
+
+		//this.desktopApp = desktopApp;
+		
+		//this.cytoPanelWest = this.desktopApp.getCytoPanel(CytoPanelName.WEST);
+		//this.mainPanel = mainPanel;
+	}
+
+	@Override
+	public void actionPerformed(ActionEvent e) {
+		// TODO Auto-generated method stub
+		
+	}
+
+}
diff --git a/src/main/java/de/hhu/bcs/yoshikoWrapper/internal/CyActivator.java b/src/main/java/de/hhu/bcs/yoshikoWrapper/internal/CyActivator.java
deleted file mode 100644
index 0a1e89d6f4545f529b8b4bf6c56d069a45d9d9ad..0000000000000000000000000000000000000000
--- a/src/main/java/de/hhu/bcs/yoshikoWrapper/internal/CyActivator.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package de.hhu.bcs.yoshikoWrapper.internal;
-
-import org.cytoscape.service.util.AbstractCyActivator;
-import org.osgi.framework.BundleContext;
-
-
-public class CyActivator extends AbstractCyActivator {
-
-	@Override
-	public void start(BundleContext context) throws Exception {
-		System.loadLibrary("yoshiko");
-	}
-
-}