diff --git a/README.md b/README.md
index 1b50d7274723daa31c82b9cb9a3e87defcf86f78..1824e319e6054081067e4252fe53740a808aed98 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 # b-language-extension README
 
-Compiler support for B via ProB. You need a nightly build of ProB to fully use this extension. Visit https://www3.hhu.de/stups/prob/ to get the latest version.
+Compiler support for B via ProB. You don´t need your own version of proB, This plugin comes with one packed. You can however provide a proB version by your own, but be cautious; This can lead to unexpected and untested behavior.
 
 
 ## Features
@@ -10,8 +10,7 @@ Compiler support for B via ProB. You need a nightly build of ProB to fully use t
 
 ## Requirements
 
-- Latest nightly build of ProB.
-- Java v.8 or higher. By default java home is considerd to be accessible by 'java' in terminal/powershell
+- Java v.8 or higher. By default java home is considerd to be accessible by typing 'java' in terminal/powershell
 
 
 ## Extension Settings
@@ -24,7 +23,6 @@ This extension contributes the following settings:
 * `languageServer.performanceHints`: to enable/disable performance-related Hints.
 * `languageServer.debugMode`: to enable/disable the server log
 
-To ensure expected behavior deactivate/activate settings in the User and Worksapce Tab.
 
 ## Bugs
 - please open an issue at https://github.com/SeeBasTStick/b-language-extension
@@ -34,12 +32,13 @@ The language server can be found here https://github.com/SeeBasTStick/b-language
 
 
 ## Future plans
-- Linter Support (via Server, is still in development by Mircosoft https://microsoft.github.io/language-server-protocol/specifications/specification-3-16/)
 - Quickfix support aká Code Completion
-- Completion and Feedback via ProB Java kernel instead of cli calls. (will improve performance and give access to more features)
+- Definition provider
+
+
 
 ## Release Notes
 
-### 1.1.2
+### 2.0.0
 
-- fixed a bug where for longer outputs from probcli the system would not return causing a deadlook
\ No newline at end of file
+- know uses the java prob kernel for drastic performance gain
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 144d28a7e0b779725d4333adb34c86b5a7da55ec..b3d9aae6ed48683f1fc88386f3140c14eaca10be 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -494,8 +494,7 @@
 		"deep-is": {
 			"version": "0.1.3",
 			"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
-			"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
-			"dev": true
+			"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
 		},
 		"define-properties": {
 			"version": "1.1.3",
@@ -986,6 +985,11 @@
 			"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
 			"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
 		},
+		"ip-regex": {
+			"version": "2.1.0",
+			"resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
+			"integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk="
+		},
 		"is-binary-path": {
 			"version": "2.1.0",
 			"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
@@ -1058,6 +1062,21 @@
 				"has-symbols": "^1.0.1"
 			}
 		},
+		"is-url": {
+			"version": "1.2.4",
+			"resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz",
+			"integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww=="
+		},
+		"is2": {
+			"version": "2.0.1",
+			"resolved": "https://registry.npmjs.org/is2/-/is2-2.0.1.tgz",
+			"integrity": "sha512-+WaJvnaA7aJySz2q/8sLjMb2Mw14KTplHmSwcSpZ/fWJPkUmqw3YTzSWbPJ7OAwRvdYTWF2Wg+yYJ1AdP5Z8CA==",
+			"requires": {
+				"deep-is": "^0.1.3",
+				"ip-regex": "^2.1.0",
+				"is-url": "^1.2.2"
+			}
+		},
 		"isarray": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
@@ -1306,6 +1325,11 @@
 				"through2": "^2.0.3"
 			}
 		},
+		"net": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npmjs.org/net/-/net-1.0.2.tgz",
+			"integrity": "sha1-0XV+yaf7I3HYPPR1XOPifhCCk4g="
+		},
 		"node-environment-flags": {
 			"version": "1.0.6",
 			"resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz",
@@ -1703,6 +1727,25 @@
 				"string-width": "^3.0.0"
 			}
 		},
+		"tcp-port-used": {
+			"version": "1.0.1",
+			"resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.1.tgz",
+			"integrity": "sha512-rwi5xJeU6utXoEIiMvVBMc9eJ2/ofzB+7nLOdnZuFTmNCLqRiQh2sMG9MqCxHU/69VC/Fwp5dV9306Qd54ll1Q==",
+			"requires": {
+				"debug": "4.1.0",
+				"is2": "2.0.1"
+			},
+			"dependencies": {
+				"debug": {
+					"version": "4.1.0",
+					"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz",
+					"integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==",
+					"requires": {
+						"ms": "^2.1.1"
+					}
+				}
+			}
+		},
 		"text-table": {
 			"version": "0.2.0",
 			"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
diff --git a/package.json b/package.json
index d45de453d59491f52b8c9a134272fa63baee80c4..5723cf0e445d8fc2d3cf7e0445e12d0847524ef6 100644
--- a/package.json
+++ b/package.json
@@ -43,7 +43,7 @@
 				"languageServer.wdChecks": {
 					"id": "2",
 					"title": "WD Checks",
-					"scope": "application",
+					"scope": "window",
 					"type": "boolean",
 					"default": true,
 					"description": "Option for WD Checks"
@@ -162,9 +162,11 @@
 		"fs": "0.0.1-security",
 		"mkdirp": "^1.0.4",
 		"ndjson": "^1.5.0",
+		"net": "^1.0.2",
 		"path": "^0.12.7",
 		"run-script-os": "^1.1.1",
 		"stream-to-array": "^2.3.0",
+		"tcp-port-used": "^1.0.1",
 		"ts-xor": "^1.0.8",
 		"vscode-api": "0.0.0",
 		"vscode-languageclient": "^6.1.3",
diff --git a/src/extension.ts b/src/extension.ts
index 1bff34c9064e49f7d43102850efd9f9ed3b143e2..2fb1e534e8e0f636369401eaa712883ce1dbb825 100644
--- a/src/extension.ts
+++ b/src/extension.ts
@@ -11,8 +11,12 @@ import {
 	LanguageClient,
 	LanguageClientOptions,
 	ServerOptions,
+	StreamInfo
 } from 'vscode-languageclient';
+
+import * as net from 'net';
 import * as path from 'path'
+import { spawn } from 'child_process';
 
 
 let client: LanguageClient;
@@ -20,18 +24,35 @@ let client: LanguageClient;
 export function activate(context: ExtensionContext) {
 
 	const serverHome = context.asAbsolutePath(path.join('node_modules', 'b-language-server', 'build', 'libs', 'b-language-server-all.jar'))
-	//const serverHome = "/home/sebastian/IdeaProjects/b-language-server/build/libs/b-language-server-all.jar"
 	const javaHome : string = workspace.getConfiguration("common").get("javaHome")
 
-	let serverOptions: ServerOptions = {
-		command: javaHome,
-		args: [ "-jar", serverHome]
-	};
 
+
+	//Start the server
+	let prc = spawn(javaHome, ['-jar', serverHome])
+	
+
+	prc.stdout.on('data', function(data){
 	
 
+	let connectionInfo = {
+		port : 55556
+	}
+
+
+	let serverOptions : ServerOptions = () => {
+		let socket = net.connect(connectionInfo);
+        let result: StreamInfo = {
+            writer: socket,
+            reader: socket
+        };
+        return Promise.resolve(result);
+	}
+
+
 	let debugChannle = window.createOutputChannel("ProB language server")
-	debugChannle.appendLine("starting server at <" + javaHome + " -jar " + serverHome + ">")
+	debugChannle.appendLine("starting server " )
+
 	//debugChannle.appendLine("fs exits " + fs.existsSync(serverHome))
 	// Options to control the language client
 	let clientOptions: LanguageClientOptions = {
@@ -70,8 +91,8 @@ export function activate(context: ExtensionContext) {
 	{
 		showDebugMessages(debugChannle)
 	})	
-
-
+	})
+	
 }
 
 function showDebugMessages(debugChannle : OutputChannel){
@@ -100,5 +121,6 @@ function toggleItem(editor: TextEditor, item) {
 	}
 }
 
+