diff --git a/src/main/kotlin/b/language/server/BDocumentService.kt b/src/main/kotlin/b/language/server/BDocumentService.kt
index cf0d28cd5a6c1b5964e99dde62519b23eea372f4..2448022e4b4826e5c9cba71300f87777334620ef 100644
--- a/src/main/kotlin/b/language/server/BDocumentService.kt
+++ b/src/main/kotlin/b/language/server/BDocumentService.kt
@@ -33,14 +33,29 @@ class BDocumentService(private val server: Server) : TextDocumentService {
      */
     override fun didSave(params: DidSaveTextDocumentParams?) {
 
+   //     server.languageClient.showMessage(MessageParams(MessageType.Log,"Penis"))
+
         val currentUri = params!!.textDocument.uri
+        checkUri(currentUri)
+
+    }
+
+    /**
+     *
+     * @param the uri to perform actions on
+     */
+    fun checkUri(currentUri : String){
         val clientSettings = server.getDocumentSettings(currentUri)
 
+   //     server.languageClient.showMessage(MessageParams(MessageType.Log,clientSettings.toString()))
+
         clientSettings.thenAccept{ settings ->
             val prob : ProBInterface = ProBCommandLineAccess()
+      //      server.languageClient.showMessage(MessageParams(MessageType.Log,settings.toString()))
 
             try{
                 val diagnostics: List<Diagnostic> = prob.checkDocument(currentUri, settings)
+
                 server.languageClient.publishDiagnostics(PublishDiagnosticsParams(currentUri, diagnostics))
                 val filesWithProblems = diagnostics.map { diagnostic -> diagnostic.source }
                 calculateToInvalidate(currentUri, filesWithProblems)
@@ -83,7 +98,8 @@ class BDocumentService(private val server: Server) : TextDocumentService {
      * Registration Options: TextDocumentChangeRegistrationOptions
      */
     override fun didChange(params: DidChangeTextDocumentParams?) {
-      //Nothing
+        val currentUri = params!!.textDocument.uri
+        checkUri(currentUri)
     }
 
 }
\ No newline at end of file
diff --git a/src/main/kotlin/b/language/server/Server.kt b/src/main/kotlin/b/language/server/Server.kt
index 241dfc84deecdcb746b47e83e40767d12a0d0d71..d1b11c312d27fdbc716e80d5ade78ba0c26b0343 100644
--- a/src/main/kotlin/b/language/server/Server.kt
+++ b/src/main/kotlin/b/language/server/Server.kt
@@ -3,6 +3,7 @@ package b.language.server
 import b.language.server.dataStorage.Settings
 import com.google.gson.JsonObject
 import org.eclipse.lsp4j.*
+import org.eclipse.lsp4j.jsonrpc.messages.Either
 import org.eclipse.lsp4j.services.LanguageClient
 import org.eclipse.lsp4j.services.LanguageServer
 import org.eclipse.lsp4j.services.TextDocumentService
@@ -27,28 +28,10 @@ class Server : LanguageServer {
     }
 
 
-    /**
-     * The initialize request is sent as the first request from the client to
-     * the server.
-     *
-     * If the server receives request or notification before the initialize request it should act as follows:
-     * - for a request the respond should be errored with code: -32001. The message can be picked by the server.
-     * - notifications should be dropped, except for the exit notification. This will allow the exit a server without an initialize request.
-     *
-     * Until the server has responded to the initialize request with an InitializeResult
-     * the client must not sent any additional requests or notifications to the server.
-     *
-     * During the initialize request the server is allowed to sent the notifications window/showMessage,
-     * window/logMessage and telemetry/event as well as the window/showMessageRequest request to the client.
-     */
     override fun initialize(params: InitializeParams?): CompletableFuture<InitializeResult> {
         val res = InitializeResult(ServerCapabilities())
-        res.capabilities.setCodeActionProvider(false)
-//        res.capabilities.definitionProvider = false
-        res.capabilities.hoverProvider = false
-        res.capabilities.referencesProvider = false
-        res.capabilities.setTextDocumentSync(TextDocumentSyncKind.Full)
-        res.capabilities.documentSymbolProvider = false
+        res.capabilities.textDocumentSync = Either.forLeft(TextDocumentSyncKind.Full)
+
         return CompletableFuture.supplyAsync { res }
     }
 
@@ -104,8 +87,10 @@ class Server : LanguageServer {
         if(!configurationAbility){
             val returnValue = CompletableFuture<Settings>()
             returnValue.complete(globalSettings)
+
             return returnValue
         }
+
         // if client has configuration abilities
         return if(documentSettings.containsKey(uri))
         {
diff --git a/src/main/kotlin/b/language/server/Util.kt b/src/main/kotlin/b/language/server/Util.kt
index 4c6f406cc72f900f4a6c1aa6e0c55fe7f8a101c7..a42106ee353348e5875acf2b05fc0cb6b955da75 100644
--- a/src/main/kotlin/b/language/server/Util.kt
+++ b/src/main/kotlin/b/language/server/Util.kt
@@ -1,13 +1,9 @@
 package b.language.server
 
-import b.language.server.dataStorage.Problem
 import b.language.server.dataStorage.Settings
 import com.google.gson.Gson
 import com.google.gson.JsonObject
-import org.eclipse.lsp4j.Diagnostic
-import org.eclipse.lsp4j.DiagnosticSeverity
-import org.eclipse.lsp4j.Position
-import org.eclipse.lsp4j.Range
+
 import java.io.File
 
 
diff --git a/src/main/kotlin/b/language/server/proBMangement/ProBCommandLineAccess.kt b/src/main/kotlin/b/language/server/proBMangement/ProBCommandLineAccess.kt
index 4daf213f471f435fe39da5d4f72d6e9db22c888d..35af31f6a651c1d5e20ce5888a1c997d7c7f97d8 100644
--- a/src/main/kotlin/b/language/server/proBMangement/ProBCommandLineAccess.kt
+++ b/src/main/kotlin/b/language/server/proBMangement/ProBCommandLineAccess.kt
@@ -25,7 +25,7 @@ class ProBCommandLineAccess : ProBInterface{
 
         val result = createFolder(errorDict, errorPath)
          if(!result){
-            throw PathCouldNotBeCreatedException("The Path leading to $errorPath could has not been created due some issue.")
+            throw PathCouldNotBeCreatedException("The Path leading to $errorPath has not been created due some issue.")
         }
         val command = buildCommand(settings, path, errorPath)
 
@@ -163,7 +163,10 @@ class ProBCommandLineAccess : ProBInterface{
                 .map { problem -> Diagnostic(
                         Range(
                                 Position(problem.start.line, problem.start.col),
-                                Position(problem.end.line, problem.end.col)), problem.message,
+                                Position(problem.end.line, problem.end.col)),
+
+                        problem.message,
+
                         when (problem.type) {
                             "error" -> {
                                 DiagnosticSeverity.Error
@@ -178,8 +181,9 @@ class ProBCommandLineAccess : ProBInterface{
                                 DiagnosticSeverity.Hint
                             }
                         },
-                        problem.file,
-                        " probcli v.${problem.version}")
+                        problem.file
+                        //code =  " probcli v.${problem.version}"
+                        )
                 }
     }
 }
\ No newline at end of file
diff --git a/src/test/kotlin/b/language/server/ProBCommandLineTest.kt b/src/test/kotlin/b/language/server/ProBCommandLineTest.kt
index 16e3b123d1d3a4186d3ba62843db14b728768deb..79e90d6bf097ce5eff8a9d8eb1a0377c09a0a571 100644
--- a/src/test/kotlin/b/language/server/ProBCommandLineTest.kt
+++ b/src/test/kotlin/b/language/server/ProBCommandLineTest.kt
@@ -12,6 +12,7 @@ import kotlin.test.Test
 import org.junit.jupiter.api.io.TempDir
 import java.io.File
 import kotlin.test.assertEquals
+import kotlin.test.assertTrue
 
 class ProBCommandLineTest{
 
@@ -177,9 +178,19 @@ class ProBCommandLineTest{
 
         val diagnostic = Diagnostic(Range(
                 org.eclipse.lsp4j.Position(31,54),
-                org.eclipse.lsp4j.Position(53, 65)), message,  DiagnosticSeverity.Hint, problemFile, " probcli v.$version" )
+                org.eclipse.lsp4j.Position(5, 65)), message,  DiagnosticSeverity.Hint, problemFile, " probcli v.$version" )
         assertEquals(diagnostic, transformedProblem)
 
     }
 
+
+    @Test
+    fun test_createFolders_success(@TempDir tempPath : File = File("tmp")){
+        val errorDict = File(tempPath.path+"/tmp")
+        val errorPath = File(tempPath.path+"/tmp/hallo.njson")
+        val result = ProBCommandLineAccess().createFolder(errorDict, errorPath)
+        assertTrue(result)
+    }
+
+
 }
\ No newline at end of file