diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index 73f69e0958611ac6e00bde95641f6699030ad235..0000000000000000000000000000000000000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml
-# Editor-based HTTP Client requests
-/httpRequests/
diff --git a/src/main/kotlin/b/language/server/BDocumentService.kt b/src/main/kotlin/b/language/server/BDocumentService.kt
index 147d7c933a4ab6e9c4e2f60e43bdf6a9f48c4ca2..57a0b86a22b07095f7efaaeab76d0b94c28eeeea 100644
--- a/src/main/kotlin/b/language/server/BDocumentService.kt
+++ b/src/main/kotlin/b/language/server/BDocumentService.kt
@@ -35,7 +35,7 @@ class BDocumentService(private val server: Server, private val communicator: Com
      */
     override fun didSave(params: DidSaveTextDocumentParams?) {
 
-        communicator.sendDebugMessage("document ${params!!.textDocument.uri} was saved", MessageType.Info)
+        communicator.bufferDebugMessage("document ${params!!.textDocument.uri} was saved", MessageType.Info)
         val currentUri = params.textDocument.uri
         checkDocument(currentUri)
 
@@ -48,7 +48,7 @@ class BDocumentService(private val server: Server, private val communicator: Com
     fun checkDocument(currentUri : String){
 
         val clientSettings = server.getDocumentSettings(currentUri)
-        communicator.sendDebugMessage("waiting for document settings", MessageType.Info)
+        communicator.bufferDebugMessage("waiting for document settings", MessageType.Info)
 
         clientSettings.thenAccept{ settings ->
             communicator.setDebugMode(settings.debugMode)
@@ -80,7 +80,7 @@ class BDocumentService(private val server: Server, private val communicator: Com
 
     /**
      * Gets all uris that are no longer contain problems
-     * @param currentUri the uri of the curre   nt main file
+     * @param currentUri the uri of the current main file
      * @param filesWithProblems uris of files containing problems
      */
     fun calculateToInvalidate(currentUri : String, filesWithProblems : List<String>) : List<String>{
@@ -108,7 +108,7 @@ class BDocumentService(private val server: Server, private val communicator: Com
      * Registration Options: TextDocumentChangeRegistrationOptions
      */
     override fun didChange(params: DidChangeTextDocumentParams?) {
-        communicator.sendDebugMessage("document ${params!!.textDocument.uri} was changed", MessageType.Info)
+        communicator.bufferDebugMessage("document ${params!!.textDocument.uri} was changed", MessageType.Info)
         val currentUri = params.textDocument.uri
         checkDocument(currentUri)
     }
diff --git a/src/main/kotlin/b/language/server/BWorkspaceService.kt b/src/main/kotlin/b/language/server/BWorkspaceService.kt
index 7dfc24dc30730e95391dde72e21e0bee3a5d1a92..603b6dad7bc4a52768419d0f987e8fa4c7f47a6c 100644
--- a/src/main/kotlin/b/language/server/BWorkspaceService.kt
+++ b/src/main/kotlin/b/language/server/BWorkspaceService.kt
@@ -16,7 +16,7 @@ class BWorkspaceService(private val server : Server) : WorkspaceService {
      * the client detects changes to file watched by the language client.
      */
     override fun didChangeWatchedFiles(params: DidChangeWatchedFilesParams?) {
-        Communicator.sendDebugMessage("----------changed watched files", MessageType.Info)
+        Communicator.bufferDebugMessage("changed watched files", MessageType.Info)
 
         // Not needed
     }
@@ -26,7 +26,7 @@ class BWorkspaceService(private val server : Server) : WorkspaceService {
      * configuration settings.
      */
     override fun didChangeConfiguration(params: DidChangeConfigurationParams?) {
-        Communicator.sendDebugMessage("received change in configuration settings", MessageType.Info)
+        Communicator.bufferDebugMessage("received change in configuration settings", MessageType.Info)
         if(server.configurationAbility) {
             server.documentSettings.clear()
         }else{
diff --git a/src/main/kotlin/b/language/server/Server.kt b/src/main/kotlin/b/language/server/Server.kt
index c0bfd919209b0175bae1d8fb5746d02798586ea5..274196fc846eae6d7fac39a1d18c45c9aae2ab81 100644
--- a/src/main/kotlin/b/language/server/Server.kt
+++ b/src/main/kotlin/b/language/server/Server.kt
@@ -83,7 +83,7 @@ class Server : LanguageServer{
      * @return settings of the document requested
      */
     fun getDocumentSettings(uri : String) : CompletableFuture<Settings> {
-        Communicator.sendDebugMessage("received configuration Data of the document $uri", MessageType.Info)
+        Communicator.bufferDebugMessage("received configuration data of the document $uri", MessageType.Info)
         return if(!configurationAbility){
             val returnValue = CompletableFuture<Settings>()
             returnValue.complete(globalSettings)
diff --git a/src/main/kotlin/b/language/server/communication/Communicator.kt b/src/main/kotlin/b/language/server/communication/Communicator.kt
index 7b8f5912b1abfdb1d4cd4b0c6b9bbcb3e06bd0d8..3472e80878a9aef41fc3843a241f21afb818049d 100644
--- a/src/main/kotlin/b/language/server/communication/Communicator.kt
+++ b/src/main/kotlin/b/language/server/communication/Communicator.kt
@@ -15,6 +15,7 @@ object Communicator : CommunicatorInterface {
     lateinit var client : LanguageClient
 
     private var debugMode : Boolean = true
+    private val storedMessages = mutableListOf<Pair<String, MessageType>>()
 
     /**
      * Sends the diagnostics
@@ -32,7 +33,13 @@ object Communicator : CommunicatorInterface {
      * @param severity the Severity of the message (Error/Info/Warning)
      */
     override fun sendDebugMessage(message: String, severity: MessageType) {
+
+
         if(debugMode) {
+            if(storedMessages.isNotEmpty()) {
+                storedMessages.toList().forEach { element -> client.logMessage(MessageParams(element.second, element.first)) }
+                storedMessages.clear()
+            }
             client.logMessage(MessageParams(severity, message))
         }
 
@@ -57,4 +64,17 @@ object Communicator : CommunicatorInterface {
     override fun setDebugMode(mode : Boolean){
         debugMode = mode
     }
+
+    /**
+     * Can be used to store a messages until a "sendDebugMessage" command is sent. The messages will be sent as FIFO
+     * @param message the message to send
+     * @param severity tne message severity
+     */
+    override fun bufferDebugMessage(message: String, severity: MessageType) {
+        if(debugMode) {
+            storedMessages.add(Pair(message, severity))
+        }
+    }
+
+
 }
\ No newline at end of file
diff --git a/src/main/kotlin/b/language/server/communication/CommunicatorInterface.kt b/src/main/kotlin/b/language/server/communication/CommunicatorInterface.kt
index b9096f08c5bf4872ac83fc822690fd03e6566388..850b781fd566cc31a82d95c04d7c5ee932f9e6d6 100644
--- a/src/main/kotlin/b/language/server/communication/CommunicatorInterface.kt
+++ b/src/main/kotlin/b/language/server/communication/CommunicatorInterface.kt
@@ -38,4 +38,12 @@ interface CommunicatorInterface {
      * @param mode the new state of the debug mode
      */
     fun setDebugMode(mode : Boolean)
+
+
+    /**
+     * Can be used to store a messages until a "sendDebugMessage" command is sent. The messages will be sent as FIFO
+     * @param message the message to send
+     * @param severity tne message severity
+     */
+    fun bufferDebugMessage(message : String, severity: MessageType)
 }
\ No newline at end of file
diff --git a/src/main/kotlin/b/language/server/proBMangement/probCli/ProBCommandLineAccess.kt b/src/main/kotlin/b/language/server/proBMangement/probCli/ProBCommandLineAccess.kt
index 11360e0b66f698ddc41a0ae9f88934eb24063daf..4f4265c7d66de93e8250270e52bf91ea5ebd9a06 100644
--- a/src/main/kotlin/b/language/server/proBMangement/probCli/ProBCommandLineAccess.kt
+++ b/src/main/kotlin/b/language/server/proBMangement/probCli/ProBCommandLineAccess.kt
@@ -64,7 +64,8 @@ class ProBCommandLineAccess(val communicator : CommunicatorInterface) : ProBInte
         val typeCheckDefinitions = "TYPE_CHECK_DEFINITIONS"
         val lint = "-lint"
         val tRUE = "TRUE"
-        val performanceHints = "PERFORMANCE_INFO"
+        val performanceHints = "" +
+                "PERFORMANCE_INFO"
 
 
         val command = mutableListOf<String>()
@@ -113,7 +114,7 @@ class ProBCommandLineAccess(val communicator : CommunicatorInterface) : ProBInte
                     .redirectError(ProcessBuilder.Redirect.PIPE)
 
         }catch (e : IllegalArgumentException){
-            communicator.sendDebugMessage("illigal argument exception", MessageType.Info)
+            communicator.sendDebugMessage("illegal argument exception", MessageType.Info)
         }
         return ProcessBuilder()
     }
@@ -144,16 +145,14 @@ class ProBCommandLineAccess(val communicator : CommunicatorInterface) : ProBInte
 
         val process: Process = command.start()
 
-     //   val output  = InputStreamReader(process.inputStream)
-     //   val error  = InputStreamReader(process.errorStream)
 
         val outputAsString = readFromStream(process.inputStream)
-        readFromStream(process.errorStream)
+        readFromStream(process.errorStream) //just void error
 
 
        // process.waitFor() //we must wait here to ensure correct behavior when reading an error
         val exitStatus = process.waitFor()
-        communicator.sendDebugMessage("output of execution + ${exitStatus}", MessageType.Info)
+        communicator.sendDebugMessage("exit status of execution: $exitStatus", MessageType.Info)
         if(!outputAsString.contains("ProB Command Line Interface")){
             throw CommandCouldNotBeExecutedException("Error when trying to call probcli with command $command")
         }