diff --git a/src/main/java/de/tlc4b/Log.java b/src/main/java/de/tlc4b/Log.java
deleted file mode 100644
index 88c50401cf9724dc04d73772f2a244d251bd72b2..0000000000000000000000000000000000000000
--- a/src/main/java/de/tlc4b/Log.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package de.tlc4b;
-
-import static de.tlc4b.util.StopWatch.Watches.PARSING_TIME;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import de.tlc4b.tlc.TLCResults;
-import de.tlc4b.util.StopWatch;
-import de.tlc4b.util.StopWatch.Watches;
-
-public final class Log {
-
-	public static final String DELIMITER = ";";
-
-	private Log() {}
-
-	public static String getCSVString(TLC4B tlc4b, TLCResults tlcResults) {
-		List<String> fieldNames = new ArrayList<>();
-		List<String> fieldValues = new ArrayList<>();
-
-		fieldNames.add("Machine File");
-		String machineFile = tlc4b.getMainFile().getAbsolutePath();
-		fieldValues.add(machineFile);
-
-		fieldNames.add("TLC Model Checking Time (s)");
-		double tlcModelCheckingTime = tlcResults.getModelCheckingTime();
-		fieldValues.add(String.valueOf(tlcModelCheckingTime));
-
-		fieldNames.add("Parsing Time Of B machine (ms)");
-		long parseTime = StopWatch.getRunTime(PARSING_TIME);
-		fieldValues.add(String.valueOf(parseTime));
-
-		fieldNames.add("Translation Time (ms)");
-		long translationTime = StopWatch.getRunTime(Watches.TRANSLATION_TIME);
-		fieldValues.add(String.valueOf(translationTime));
-
-		fieldNames.add("Model Checking Time (ms)");
-		long modelCheckingTime = StopWatch.getRunTime(Watches.MODEL_CHECKING_TIME);
-		fieldValues.add(String.valueOf(modelCheckingTime));
-		
-		fieldNames.add("TLC Result");
-		fieldValues.add(tlcResults.getResultString());
-
-		fieldNames.add("States analysed");
-		fieldValues.add(Integer.toString(tlcResults.getNumberOfDistinctStates()));
-
-		fieldNames.add("Transitions fired");
-		fieldValues.add(Integer.toString(tlcResults.getNumberOfTransitions()));
-
-		fieldNames.add("Violated Definition");
-		String violatedDefinition = tlcResults.getViolatedDefinition();
-		fieldValues.add(violatedDefinition != null ? violatedDefinition : "");
-
-		fieldNames.add("Violated Assertions");
-		List<String> violatedAssertions = tlcResults.getViolatedAssertions();
-		fieldValues.add(!violatedAssertions.isEmpty() ? String.join(DELIMITER, violatedAssertions) : "");
-
-		fieldNames.add("Operation Coverage");
-		Map<String, Long> operationCount = tlcResults.getOperationCount();
-		List<String> opCountString = new ArrayList<>();
-		if (operationCount != null) {
-			operationCount.forEach((operation, count) -> opCountString.add(operation + DELIMITER + count));
-		}
-		fieldValues.add(!opCountString.isEmpty() ? String.join(DELIMITER, opCountString) : "");
-
-		fieldNames.add("Trace File");
-		fieldValues.add(tlc4b.getTraceFile() != null ? tlc4b.getTraceFile().getAbsolutePath() : "");
-
-		StringBuilder sb = new StringBuilder();
-		for (int i = 0; i < fieldNames.size(); i++) {
-			sb.append(fieldNames.get(i)).append(DELIMITER).append(fieldValues.get(i)).append("\n");
-		}
-		return sb.toString();
-	}
-}
diff --git a/src/main/java/de/tlc4b/TLC4B.java b/src/main/java/de/tlc4b/TLC4B.java
index 31566f7a69f8c601d9c11284d949c18bd3efd4b4..e9b633b89ef32d1f3d6a528d8f5c7acbb4da1385 100644
--- a/src/main/java/de/tlc4b/TLC4B.java
+++ b/src/main/java/de/tlc4b/TLC4B.java
@@ -9,6 +9,8 @@ import java.io.InputStream;
 import java.io.OutputStreamWriter;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.concurrent.ExecutionException;
@@ -37,6 +39,7 @@ import static de.tlc4b.util.StopWatch.Watches.*;
 import static de.tlc4b.MP.*;
 
 public class TLC4B {
+	private static final String CSV_DELIMITER = ";";
 
 	private String filename;
 	private File mainfile, traceFile;
@@ -419,9 +422,68 @@ public class TLC4B {
 		}
 	}
 
+	private String getLogCsvString(TLCResults tlcResults) {
+		List<String> fieldNames = new ArrayList<>();
+		List<String> fieldValues = new ArrayList<>();
+
+		fieldNames.add("Machine File");
+		String machineFile = this.getMainFile().getAbsolutePath();
+		fieldValues.add(machineFile);
+
+		fieldNames.add("TLC Model Checking Time (s)");
+		double tlcModelCheckingTime = tlcResults.getModelCheckingTime();
+		fieldValues.add(String.valueOf(tlcModelCheckingTime));
+
+		fieldNames.add("Parsing Time Of B machine (ms)");
+		long parseTime = StopWatch.getRunTime(PARSING_TIME);
+		fieldValues.add(String.valueOf(parseTime));
+
+		fieldNames.add("Translation Time (ms)");
+		long translationTime = StopWatch.getRunTime(TRANSLATION_TIME);
+		fieldValues.add(String.valueOf(translationTime));
+
+		fieldNames.add("Model Checking Time (ms)");
+		long modelCheckingTime = StopWatch.getRunTime(MODEL_CHECKING_TIME);
+		fieldValues.add(String.valueOf(modelCheckingTime));
+		
+		fieldNames.add("TLC Result");
+		fieldValues.add(tlcResults.getResultString());
+
+		fieldNames.add("States analysed");
+		fieldValues.add(Integer.toString(tlcResults.getNumberOfDistinctStates()));
+
+		fieldNames.add("Transitions fired");
+		fieldValues.add(Integer.toString(tlcResults.getNumberOfTransitions()));
+
+		fieldNames.add("Violated Definition");
+		String violatedDefinition = tlcResults.getViolatedDefinition();
+		fieldValues.add(violatedDefinition != null ? violatedDefinition : "");
+
+		fieldNames.add("Violated Assertions");
+		List<String> violatedAssertions = tlcResults.getViolatedAssertions();
+		fieldValues.add(!violatedAssertions.isEmpty() ? String.join(CSV_DELIMITER, violatedAssertions) : "");
+
+		fieldNames.add("Operation Coverage");
+		Map<String, Long> operationCount = tlcResults.getOperationCount();
+		List<String> opCountString = new ArrayList<>();
+		if (operationCount != null) {
+			operationCount.forEach((operation, count) -> opCountString.add(operation + CSV_DELIMITER + count));
+		}
+		fieldValues.add(!opCountString.isEmpty() ? String.join(CSV_DELIMITER, opCountString) : "");
+
+		fieldNames.add("Trace File");
+		fieldValues.add(this.getTraceFile() != null ? this.getTraceFile().getAbsolutePath() : "");
+
+		StringBuilder sb = new StringBuilder();
+		for (int i = 0; i < fieldNames.size(); i++) {
+			sb.append(fieldNames.get(i)).append(CSV_DELIMITER).append(fieldValues.get(i)).append("\n");
+		}
+		return sb.toString();
+	}
+
 	private void createLogFile(TLCResults results) {
 		if (logFileString != null) {
-			String logCsvString = Log.getCSVString(this, results);
+			String logCsvString = getLogCsvString(results);
 			File logFile = new File(logFileString);
 			try (FileWriter fw = new FileWriter(logFile, true)) { // the true will append the new data
 				fw.write(logCsvString);