diff --git a/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java b/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java
index f34d1c5575c5c89edc4ce432c2e29f0e00c24f9d..6419bec8346e317ba9601383462ac65e04a917d7 100644
--- a/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java
+++ b/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java
@@ -13,9 +13,7 @@ import kieker.analysis.dev.dependencygraphs.AssemblyDependencyGraphCreatorStage;
 import kieker.analysis.dev.dependencygraphs.AssemblyDependencyGraphLevel;
 import kieker.analysis.dev.dependencygraphs.DeploymentDependencyGraphCreatorStage;
 import kieker.analysis.dev.dependencygraphs.DeploymentDependencyGraphLevel;
-import kieker.analysis.dev.dependencygraphs.DotComponentsDependencyExportStage;
-import kieker.analysis.dev.dependencygraphs.DotContainersDependencyExportStage;
-import kieker.analysis.dev.dependencygraphs.DotOperationsDependencyExportStage;
+import kieker.analysis.dev.dependencygraphs.dot.DotDependencyGraphExporterFactory;
 import kieker.analysis.domain.AggregatedTrace;
 import kieker.analysis.domain.Trace;
 import kieker.analysis.domain.systemdependency.SoftwareSystem;
@@ -28,6 +26,7 @@ import kieker.analysis.trace.graphoutput.DotTraceGraphFileWriterStage;
 import kieker.analysis.trace.traversal.AggrTraceTraverserStage;
 import kieker.analysis.trace.traversal.TraceTraverserStage;
 import kieker.analysis.util.graph.Graph;
+import kieker.analysis.util.graph.export.dot.DotFileWriterStage;
 import kieker.analysis.util.graph.export.graphml.GraphMLFileWriterStage;
 import kieker.common.record.IMonitoringRecord;
 
@@ -51,6 +50,8 @@ public class TraceAnalysisConfiguration extends Configuration {
 
 	public TraceAnalysisConfiguration(final File importDirectory) {
 
+		final DotDependencyGraphExporterFactory dotDependencyGraphExporterFactory = new DotDependencyGraphExporterFactory();
+
 		// Create the stages
 		final ReadingComposite reader = new ReadingComposite(importDirectory);
 		final MultipleInstanceOfFilter<IMonitoringRecord> typeFilter = new MultipleInstanceOfFilter<>();
@@ -108,11 +109,11 @@ public class TraceAnalysisConfiguration extends Configuration {
 		Distributor<SoftwareSystem> x2SoftwareSystemDistributor = new Distributor<>(new CopyByReferenceStrategy()); // TODO name required
 		// ContainerStatisticsDecoratorStage containersStatisticsDecorator = new ContainerStatisticsDecoratorStage(); //TODO remove
 		DeploymentDependencyGraphCreatorStage operationsDependencyGraphCreator = new DeploymentDependencyGraphCreatorStage(DeploymentDependencyGraphLevel.OPERATION);
-		DotOperationsDependencyExportStage dotOperationsDependencyExporter = new DotOperationsDependencyExportStage(graphFilesOutputDir);
+		DotFileWriterStage dotOperationsDependencyExporter = dotDependencyGraphExporterFactory.getDeploymentOperationExporter(graphFilesOutputDir);
 		DeploymentDependencyGraphCreatorStage componentDependencyGraphCreator = new DeploymentDependencyGraphCreatorStage(DeploymentDependencyGraphLevel.COMPONENT);
-		DotComponentsDependencyExportStage dotComponentDependencyExporter = new DotComponentsDependencyExportStage(graphFilesOutputDir);
+		DotFileWriterStage dotComponentDependencyExporter = dotDependencyGraphExporterFactory.getDeploymentComponentExporter(graphFilesOutputDir);
 		DeploymentDependencyGraphCreatorStage containerDependencyGraphCreator = new DeploymentDependencyGraphCreatorStage(DeploymentDependencyGraphLevel.CONTAINER);
-		DotContainersDependencyExportStage dotContainerDependencyExporter = new DotContainersDependencyExportStage(graphFilesOutputDir);
+		DotFileWriterStage dotContainerDependencyExporter = dotDependencyGraphExporterFactory.getDeploymentContainerExporter(graphFilesOutputDir);
 
 		SoftwareSystemAggregatorStage softwareSystemAggregator = new SoftwareSystemAggregatorStage();
 		OperationsStatisticsDecoratorStage operationsStatisticsDecoratorAss = new OperationsStatisticsDecoratorStage();
@@ -120,9 +121,9 @@ public class TraceAnalysisConfiguration extends Configuration {
 		ComponentStatisticsDecoratorStage componentsStatisticsDecoratorAss = new ComponentStatisticsDecoratorStage();
 		Distributor<SoftwareSystem> x2SoftwareSystemDistributorAss = new Distributor<>(new CopyByReferenceStrategy()); // TODO name required
 		AssemblyDependencyGraphCreatorStage operationsDependencyGraphCreatorAss = new AssemblyDependencyGraphCreatorStage(AssemblyDependencyGraphLevel.OPERATION);
-		DotOperationsDependencyExportStage dotOperationsDependencyExporterAss = new DotOperationsDependencyExportStage(graphFilesOutputDir);
+		DotFileWriterStage dotOperationsDependencyExporterAss = dotDependencyGraphExporterFactory.getAssemblyOperationExporter(graphFilesOutputDir);
 		AssemblyDependencyGraphCreatorStage componentDependencyGraphCreatorAss = new AssemblyDependencyGraphCreatorStage(AssemblyDependencyGraphLevel.COMPONENT);
-		DotComponentsDependencyExportStage dotComponentDependencyExporterAss = new DotComponentsDependencyExportStage(graphFilesOutputDir);
+		DotFileWriterStage dotComponentDependencyExporterAss = dotDependencyGraphExporterFactory.getAssemblyComponentExporter(graphFilesOutputDir);
 
 		super.connectPorts(aggregatedTraceDistributor.getNewOutputPort(), softwareSystemCreator.getInputPort());
 		super.connectPorts(softwareSystemCreator.getOutputPort(), softwareSystemDistributor.getInputPort());
diff --git a/src/main/java/kieker/analysis/dev/dependencygraphs/DotDependencyGraphConfigurationFactory.java b/src/main/java/kieker/analysis/dev/dependencygraphs/DotDependencyGraphConfigurationFactory.java
deleted file mode 100644
index 627119fe0021925e4287d8111b18f53ce02178f9..0000000000000000000000000000000000000000
--- a/src/main/java/kieker/analysis/dev/dependencygraphs/DotDependencyGraphConfigurationFactory.java
+++ /dev/null
@@ -1,147 +0,0 @@
-package kieker.analysis.dev.dependencygraphs;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-import kieker.analysis.util.graph.Vertex;
-import kieker.analysis.util.graph.export.dot.DotExportConfiguration;
-import kieker.analysis.util.graph.util.dot.attributes.DotClusterAttribute;
-import kieker.analysis.util.graph.util.dot.attributes.DotEdgeAttribute;
-import kieker.analysis.util.graph.util.dot.attributes.DotGraphAttribute;
-import kieker.analysis.util.graph.util.dot.attributes.DotNodeAttribute;
-
-public class DotDependencyGraphConfigurationFactory {
-
-	public DotExportConfiguration getAssemblyComponentConfiguration() {
-		DotExportConfiguration configuration = getNewBaseConfiguration();
-
-		configuration.addDefaultNodeAttribute(DotNodeAttribute.SHAPE, g -> "box");
-		configuration.addNodeAttribute(DotNodeAttribute.LABEL, new VertexLabelMapper("<<assembly component>>"));
-
-		return configuration;
-	}
-
-	public DotExportConfiguration getAssemblyOperationConfiguration() {
-		DotExportConfiguration configuration = getNewBaseConfiguration();
-
-		configuration.addDefaultNodeAttribute(DotNodeAttribute.SHAPE, g -> "oval");
-		configuration.addClusterAttribute(DotClusterAttribute.LABEL, new ClusterLabelMapper("<<assembly component>>"));
-		configuration.addNodeAttribute(DotNodeAttribute.LABEL, new VertexLabelMapper());
-
-		return configuration;
-	}
-
-	public DotExportConfiguration getDeploymentContainerConfiguration() {
-		DotExportConfiguration configuration = getNewBaseConfiguration();
-
-		configuration.addDefaultNodeAttribute(DotNodeAttribute.SHAPE, g -> "box3d");
-		configuration.addNodeAttribute(DotNodeAttribute.LABEL, new VertexLabelMapper("<<execution container>>"));
-
-		return configuration;
-	}
-
-	public DotExportConfiguration getDeploymentComponentConfiguration() {
-		DotExportConfiguration configuration = getNewBaseConfiguration();
-
-		configuration.addDefaultNodeAttribute(DotNodeAttribute.SHAPE, g -> "box");
-		configuration.addClusterAttribute(DotClusterAttribute.LABEL, new ClusterLabelMapper("<<execution container>>"));
-		configuration.addNodeAttribute(DotNodeAttribute.LABEL, new VertexLabelMapper("<<deployment component>>"));
-
-		return configuration;
-	}
-
-	public DotExportConfiguration getDeploymentOperationConfiguration() {
-		DotExportConfiguration configuration = getNewBaseConfiguration();
-
-		configuration.addDefaultNodeAttribute(DotNodeAttribute.SHAPE, g -> "oval");
-		configuration.addClusterAttribute(DotClusterAttribute.LABEL, new ClusterLabelMapper("<<execution container>>", "<<deployment component>>"));
-		configuration.addNodeAttribute(DotNodeAttribute.LABEL, new VertexLabelMapper());
-
-		return configuration;
-	}
-
-	private DotExportConfiguration getNewBaseConfiguration() {
-		DotExportConfiguration configuration = new DotExportConfiguration();
-
-		configuration.addGraphAttribute(DotGraphAttribute.RANKDIR, g -> "LR");
-		configuration.addEdgeAttribute(DotEdgeAttribute.LABEL, (e -> e.getProperty("calls").toString()));
-
-		return configuration;
-	}
-
-	// TODO move outside
-	private class VertexLabelMapper implements Function<Vertex, String> {
-
-		private final String annotation;
-
-		public VertexLabelMapper() {
-			this.annotation = null;
-		}
-
-		public VertexLabelMapper(final String annotation) {
-			this.annotation = annotation;
-		}
-
-		@Override
-		public String apply(final Vertex vertex) {
-			final StringBuilder statistics = new StringBuilder();
-			if (this.annotation != null) {
-				statistics.append(this.annotation);
-				statistics.append("\\n");
-			}
-			statistics.append(vertex.getProperty("Name").toString());
-			statistics.append("\\n");
-			statistics.append(generateStatistics(vertex));
-			return statistics.toString();
-		}
-
-		private String generateStatistics(final Vertex vertex) {
-			final String temporalUnit = "xs"; // TODO temp
-			final List<String> statisticStrings = new ArrayList<>(5);
-			if (vertex.getProperty("MinDuration") != null) {
-				statisticStrings.add("min: " + vertex.getProperty("MinDuration").toString() + temporalUnit);
-			}
-			if (vertex.getProperty("MaxDuration") != null) {
-				statisticStrings.add("max: " + vertex.getProperty("MaxDuration").toString() + temporalUnit);
-			}
-			if (vertex.getProperty("TotalDuration") != null) {
-				statisticStrings.add("total: " + vertex.getProperty("TotalDuration").toString() + temporalUnit);
-			}
-			if (vertex.getProperty("MeanDuration") != null) {
-				statisticStrings.add("avg: " + vertex.getProperty("MeanDuration").toString() + temporalUnit);
-			}
-			if (vertex.getProperty("MedianDuration") != null) {
-				statisticStrings.add("med: " + vertex.getProperty("MedianDuration").toString() + temporalUnit);
-			}
-
-			// If there are more than 3 statistics elements add a line break after the 3rd last
-			if (statisticStrings.size() > 3) {
-				final int thirdLast = statisticStrings.size() - 3;
-				statisticStrings.set(thirdLast, statisticStrings.get(thirdLast).concat("\\n"));
-			}
-
-			return statisticStrings.stream().collect(Collectors.joining(", "));
-		}
-
-	}
-
-	// TODO move outside
-	private class ClusterLabelMapper implements Function<Vertex, String> {
-
-		private final List<String> annotations;
-
-		public ClusterLabelMapper(final String... annotations) {
-			this.annotations = Arrays.asList(annotations);
-		}
-
-		@Override
-		public String apply(final Vertex vertex) {
-			return this.annotations.get(vertex.getDepth()) + "\\n" + vertex.getProperty("Name").toString();
-		}
-
-	}
-
-}
diff --git a/src/main/java/kieker/analysis/dev/dependencygraphs/dot/ClusterLabelMapper.java b/src/main/java/kieker/analysis/dev/dependencygraphs/dot/ClusterLabelMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..b7d4463398592bb950d0bfee8db43c1c2ca9a122
--- /dev/null
+++ b/src/main/java/kieker/analysis/dev/dependencygraphs/dot/ClusterLabelMapper.java
@@ -0,0 +1,22 @@
+package kieker.analysis.dev.dependencygraphs.dot;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.function.Function;
+
+import kieker.analysis.util.graph.Vertex;
+
+class ClusterLabelMapper implements Function<Vertex, String> {
+
+	private final List<String> annotations;
+
+	public ClusterLabelMapper(final String... annotations) {
+		this.annotations = Arrays.asList(annotations);
+	}
+
+	@Override
+	public String apply(final Vertex vertex) {
+		return this.annotations.get(vertex.getDepth()) + "\\n" + vertex.getProperty("Name").toString();
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/dev/dependencygraphs/DotComponentsDependencyExportStage.java b/src/main/java/kieker/analysis/dev/dependencygraphs/dot/DotComponentsDependencyExportStage.java
similarity index 95%
rename from src/main/java/kieker/analysis/dev/dependencygraphs/DotComponentsDependencyExportStage.java
rename to src/main/java/kieker/analysis/dev/dependencygraphs/dot/DotComponentsDependencyExportStage.java
index cde67826fc16fb4a2c1c5e2a36198e2dddd9ce29..4f54d524cb1f1108d4a6ec7fae44648b8b8c89c4 100644
--- a/src/main/java/kieker/analysis/dev/dependencygraphs/DotComponentsDependencyExportStage.java
+++ b/src/main/java/kieker/analysis/dev/dependencygraphs/dot/DotComponentsDependencyExportStage.java
@@ -1,4 +1,4 @@
-package kieker.analysis.dev.dependencygraphs;
+package kieker.analysis.dev.dependencygraphs.dot;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -12,6 +12,7 @@ import kieker.analysis.util.graph.util.dot.attributes.DotEdgeAttribute;
 import kieker.analysis.util.graph.util.dot.attributes.DotGraphAttribute;
 import kieker.analysis.util.graph.util.dot.attributes.DotNodeAttribute;
 
+@Deprecated
 public class DotComponentsDependencyExportStage extends DotFileWriterStage {
 
 	public DotComponentsDependencyExportStage(final String outputDirectory) {
diff --git a/src/main/java/kieker/analysis/dev/dependencygraphs/DotContainersDependencyExportStage.java b/src/main/java/kieker/analysis/dev/dependencygraphs/dot/DotContainersDependencyExportStage.java
similarity index 95%
rename from src/main/java/kieker/analysis/dev/dependencygraphs/DotContainersDependencyExportStage.java
rename to src/main/java/kieker/analysis/dev/dependencygraphs/dot/DotContainersDependencyExportStage.java
index c64c1bc33f830f88e59596cb30d9f4d57b8b60c8..67d965490312b70f6124ad84b554cdec0b4c0532 100644
--- a/src/main/java/kieker/analysis/dev/dependencygraphs/DotContainersDependencyExportStage.java
+++ b/src/main/java/kieker/analysis/dev/dependencygraphs/dot/DotContainersDependencyExportStage.java
@@ -1,4 +1,4 @@
-package kieker.analysis.dev.dependencygraphs;
+package kieker.analysis.dev.dependencygraphs.dot;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -12,6 +12,7 @@ import kieker.analysis.util.graph.util.dot.attributes.DotEdgeAttribute;
 import kieker.analysis.util.graph.util.dot.attributes.DotGraphAttribute;
 import kieker.analysis.util.graph.util.dot.attributes.DotNodeAttribute;
 
+@Deprecated
 public class DotContainersDependencyExportStage extends DotFileWriterStage {
 
 	public DotContainersDependencyExportStage(final String outputDirectory) {
diff --git a/src/main/java/kieker/analysis/dev/dependencygraphs/dot/DotDependencyGraphExporterFactory.java b/src/main/java/kieker/analysis/dev/dependencygraphs/dot/DotDependencyGraphExporterFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..ac2972360bc8248d6b0120f3d12bec56d962f529
--- /dev/null
+++ b/src/main/java/kieker/analysis/dev/dependencygraphs/dot/DotDependencyGraphExporterFactory.java
@@ -0,0 +1,73 @@
+package kieker.analysis.dev.dependencygraphs.dot;
+
+import kieker.analysis.util.graph.export.dot.DotExportConfiguration;
+import kieker.analysis.util.graph.export.dot.DotFileWriterStage;
+import kieker.analysis.util.graph.util.dot.attributes.DotClusterAttribute;
+import kieker.analysis.util.graph.util.dot.attributes.DotEdgeAttribute;
+import kieker.analysis.util.graph.util.dot.attributes.DotGraphAttribute;
+import kieker.analysis.util.graph.util.dot.attributes.DotNodeAttribute;
+
+public class DotDependencyGraphExporterFactory {
+
+	public DotFileWriterStage getAssemblyComponentExporter(final String outputDirectory) {
+		DotExportConfiguration configuration = getNewBaseConfiguration();
+
+		configuration.addDefaultNodeAttribute(DotNodeAttribute.SHAPE, g -> "box");
+		configuration.addNodeAttribute(DotNodeAttribute.LABEL, new VertexLabelMapper("<<assembly component>>"));
+
+		return createStage(outputDirectory, configuration);
+	}
+
+	public DotFileWriterStage getAssemblyOperationExporter(final String outputDirectory) {
+		DotExportConfiguration configuration = getNewBaseConfiguration();
+
+		configuration.addDefaultNodeAttribute(DotNodeAttribute.SHAPE, g -> "oval");
+		configuration.addClusterAttribute(DotClusterAttribute.LABEL, new ClusterLabelMapper("<<assembly component>>"));
+		configuration.addNodeAttribute(DotNodeAttribute.LABEL, new VertexLabelMapper());
+
+		return createStage(outputDirectory, configuration);
+	}
+
+	public DotFileWriterStage getDeploymentContainerExporter(final String outputDirectory) {
+		DotExportConfiguration configuration = getNewBaseConfiguration();
+
+		configuration.addDefaultNodeAttribute(DotNodeAttribute.SHAPE, g -> "box3d");
+		configuration.addNodeAttribute(DotNodeAttribute.LABEL, new VertexLabelMapper("<<execution container>>"));
+
+		return createStage(outputDirectory, configuration);
+	}
+
+	public DotFileWriterStage getDeploymentComponentExporter(final String outputDirectory) {
+		DotExportConfiguration configuration = getNewBaseConfiguration();
+
+		configuration.addDefaultNodeAttribute(DotNodeAttribute.SHAPE, g -> "box");
+		configuration.addClusterAttribute(DotClusterAttribute.LABEL, new ClusterLabelMapper("<<execution container>>"));
+		configuration.addNodeAttribute(DotNodeAttribute.LABEL, new VertexLabelMapper("<<deployment component>>"));
+
+		return createStage(outputDirectory, configuration);
+	}
+
+	public DotFileWriterStage getDeploymentOperationExporter(final String outputDirectory) {
+		DotExportConfiguration configuration = getNewBaseConfiguration();
+
+		configuration.addDefaultNodeAttribute(DotNodeAttribute.SHAPE, g -> "oval");
+		configuration.addClusterAttribute(DotClusterAttribute.LABEL, new ClusterLabelMapper("<<execution container>>", "<<deployment component>>"));
+		configuration.addNodeAttribute(DotNodeAttribute.LABEL, new VertexLabelMapper());
+
+		return createStage(outputDirectory, configuration);
+	}
+
+	private DotExportConfiguration getNewBaseConfiguration() {
+		DotExportConfiguration configuration = new DotExportConfiguration();
+
+		configuration.addGraphAttribute(DotGraphAttribute.RANKDIR, g -> "LR");
+		configuration.addEdgeAttribute(DotEdgeAttribute.LABEL, (e -> e.getProperty("calls").toString()));
+
+		return configuration;
+	}
+
+	private DotFileWriterStage createStage(final String outputDirectory, final DotExportConfiguration configuration) {
+		return new DotFileWriterStage(outputDirectory, configuration);
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/dev/dependencygraphs/DotOperationsDependencyExportStage.java b/src/main/java/kieker/analysis/dev/dependencygraphs/dot/DotOperationsDependencyExportStage.java
similarity index 95%
rename from src/main/java/kieker/analysis/dev/dependencygraphs/DotOperationsDependencyExportStage.java
rename to src/main/java/kieker/analysis/dev/dependencygraphs/dot/DotOperationsDependencyExportStage.java
index b5b8ebc17d808b378471721c718d66b59dc694f5..d6cee46dbb1dfb0221848870b819941d05706ed0 100644
--- a/src/main/java/kieker/analysis/dev/dependencygraphs/DotOperationsDependencyExportStage.java
+++ b/src/main/java/kieker/analysis/dev/dependencygraphs/dot/DotOperationsDependencyExportStage.java
@@ -1,4 +1,4 @@
-package kieker.analysis.dev.dependencygraphs;
+package kieker.analysis.dev.dependencygraphs.dot;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -12,6 +12,7 @@ import kieker.analysis.util.graph.util.dot.attributes.DotEdgeAttribute;
 import kieker.analysis.util.graph.util.dot.attributes.DotGraphAttribute;
 import kieker.analysis.util.graph.util.dot.attributes.DotNodeAttribute;
 
+@Deprecated
 public class DotOperationsDependencyExportStage extends DotFileWriterStage {
 
 	public DotOperationsDependencyExportStage(final String outputDirectory) {
diff --git a/src/main/java/kieker/analysis/dev/dependencygraphs/dot/VertexLabelMapper.java b/src/main/java/kieker/analysis/dev/dependencygraphs/dot/VertexLabelMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..38f2c73c2c1ce5bc9e18058d4bccea2f2ce2ade7
--- /dev/null
+++ b/src/main/java/kieker/analysis/dev/dependencygraphs/dot/VertexLabelMapper.java
@@ -0,0 +1,63 @@
+package kieker.analysis.dev.dependencygraphs.dot;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+import kieker.analysis.util.graph.Vertex;
+
+class VertexLabelMapper implements Function<Vertex, String> {
+
+	private final String annotation;
+
+	public VertexLabelMapper() {
+		this.annotation = null;
+	}
+
+	public VertexLabelMapper(final String annotation) {
+		this.annotation = annotation;
+	}
+
+	@Override
+	public String apply(final Vertex vertex) {
+		final StringBuilder statistics = new StringBuilder();
+		if (this.annotation != null) {
+			statistics.append(this.annotation);
+			statistics.append("\\n");
+		}
+		statistics.append(vertex.getProperty("Name").toString());
+		statistics.append("\\n");
+		statistics.append(generateStatistics(vertex));
+		return statistics.toString();
+	}
+
+	private String generateStatistics(final Vertex vertex) {
+		final String temporalUnit = "xs"; // TODO temp
+		final List<String> statisticStrings = new ArrayList<>(5);
+		if (vertex.getProperty("MinDuration") != null) {
+			statisticStrings.add("min: " + vertex.getProperty("MinDuration").toString() + temporalUnit);
+		}
+		if (vertex.getProperty("MaxDuration") != null) {
+			statisticStrings.add("max: " + vertex.getProperty("MaxDuration").toString() + temporalUnit);
+		}
+		if (vertex.getProperty("TotalDuration") != null) {
+			statisticStrings.add("total: " + vertex.getProperty("TotalDuration").toString() + temporalUnit);
+		}
+		if (vertex.getProperty("MeanDuration") != null) {
+			statisticStrings.add("avg: " + vertex.getProperty("MeanDuration").toString() + temporalUnit);
+		}
+		if (vertex.getProperty("MedianDuration") != null) {
+			statisticStrings.add("med: " + vertex.getProperty("MedianDuration").toString() + temporalUnit);
+		}
+
+		// If there are more than 3 statistics elements add a line break after the 3rd last
+		if (statisticStrings.size() > 3) {
+			final int thirdLast = statisticStrings.size() - 3;
+			statisticStrings.set(thirdLast, statisticStrings.get(thirdLast).concat("\\n"));
+		}
+
+		return statisticStrings.stream().collect(Collectors.joining(", "));
+	}
+
+}