diff --git a/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java b/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java
index 8df565964883fcbacf469affdd21c8386b031128..127fe1a372cf3fd985f89be83251b095f4c48202 100644
--- a/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java
+++ b/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java
@@ -17,10 +17,10 @@ import kieker.analysis.stage.tracediagnosis.OperationCallHandlerComposite;
 import kieker.analysis.stage.tracediagnosis.ReadingComposite;
 import kieker.analysis.stage.tracediagnosis.TraceAggregationComposite;
 import kieker.analysis.stage.tracediagnosis.TraceReconstructionComposite;
+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;
 import kieker.common.record.misc.KiekerMetadataRecord;
@@ -74,33 +74,27 @@ public class TraceAnalysisConfiguration extends Configuration {
 		String graphFilesOutputDir = "example/event monitoring log/output"; // TODO Temp hard coded
 
 		TraceTraverserStage traceTraverserStage = new TraceTraverserStage();
-		final Distributor<Graph> graphDistributor = new Distributor<>(new CopyByReferenceStrategy());// TODO use clone
+		final Distributor<Graph> graphDistributor = new Distributor<>(new CopyByReferenceStrategy());
 		GraphMLFileWriterStage graphMLFileWriterComposite = new GraphMLFileWriterStage(graphFilesOutputDir);
-		// DotTraceStyleStage dotTraceStyleStage = new DotTraceStyleStage();
-		DotFileWriterStage dotFileWriterStage = new DotFileWriterStage(graphFilesOutputDir);
+		DotTraceGraphFileWriterStage dotTraceGraphFileWriterStage = new DotTraceGraphFileWriterStage(graphFilesOutputDir);
 
 		super.connectPorts(distributor.getNewOutputPort(), traceTraverserStage.getInputPort());
 		super.connectPorts(traceTraverserStage.getOutputPort(), graphDistributor.getInputPort());
 		super.connectPorts(graphDistributor.getNewOutputPort(), graphMLFileWriterComposite.getInputPort());
-		super.connectPorts(graphDistributor.getNewOutputPort(), dotFileWriterStage.getInputPort());
-		// super.connectPorts(graphDistributor.getNewOutputPort(), dotTraceStyleStage.getInputPort());
-		// super.connectPorts(dotTraceStyleStage.getOutputPort(), dotFileWriterStage.getInputPort());
+		super.connectPorts(graphDistributor.getNewOutputPort(), dotTraceGraphFileWriterStage.getInputPort());
 
 		final Distributor<AggregatedTrace> aggregatedTraceDistributor = new Distributor<>(new CopyByReferenceStrategy());
 		AggrTraceTraverserStage aggrTraceTraverser = new AggrTraceTraverserStage();
-		final Distributor<Graph> graphDistributor2 = new Distributor<>(new CopyByReferenceStrategy()); // TODO use clone
+		final Distributor<Graph> graphDistributor2 = new Distributor<>(new CopyByReferenceStrategy());
 		GraphMLFileWriterStage graphMLFileWriterComposite2 = new GraphMLFileWriterStage(graphFilesOutputDir);
-		// DotTraceStyleStage dotAggrTraceStyleStage = new DotTraceStyleStage();
-		DotFileWriterStage dotFileWriterStage2 = new DotFileWriterStage(graphFilesOutputDir);
+		DotTraceGraphFileWriterStage dotTraceGraphFileWriterStage2 = new DotTraceGraphFileWriterStage(graphFilesOutputDir);
 
 		super.connectPorts(aggregation.getOutputPort(), aggregatedTraceDistributor.getInputPort());
 
 		super.connectPorts(aggregatedTraceDistributor.getNewOutputPort(), aggrTraceTraverser.getInputPort());
 		super.connectPorts(aggrTraceTraverser.getOutputPort(), graphDistributor2.getInputPort());
 		super.connectPorts(graphDistributor2.getNewOutputPort(), graphMLFileWriterComposite2.getInputPort());
-		super.connectPorts(graphDistributor2.getNewOutputPort(), dotFileWriterStage2.getInputPort());
-		// super.connectPorts(graphDistributor2.getNewOutputPort(), dotAggrTraceStyleStage.getInputPort());
-		// super.connectPorts(dotAggrTraceStyleStage.getOutputPort(), dotFileWriterStage2.getInputPort());
+		super.connectPorts(graphDistributor2.getNewOutputPort(), dotTraceGraphFileWriterStage2.getInputPort());
 
 		// DependencyCreatorStage dependencyCreatorStage = new DependencyCreatorStage();
 		// DependencyStatisticsDecoratorStage dependencyStatisticsDecoratorStage = new DependencyStatisticsDecoratorStage();
diff --git a/src/main/java/kieker/analysis/trace/graphoutput/DotTraceGraphFileWriterStage.java b/src/main/java/kieker/analysis/trace/graphoutput/DotTraceGraphFileWriterStage.java
new file mode 100644
index 0000000000000000000000000000000000000000..b77934583eb1b17b70bc6d537849d7e017c90769
--- /dev/null
+++ b/src/main/java/kieker/analysis/trace/graphoutput/DotTraceGraphFileWriterStage.java
@@ -0,0 +1,13 @@
+package kieker.analysis.trace.graphoutput;
+
+import kieker.analysis.util.graph.export.dot.DotFileWriterStage;
+import kieker.analysis.util.graph.util.dot.attributes.DotNodeAttribute;
+
+public class DotTraceGraphFileWriterStage extends DotFileWriterStage {
+
+	public DotTraceGraphFileWriterStage(final String outputDirectory) {
+		super(outputDirectory);
+		exportConfiguration.getDefaultNodeAttributes().put(DotNodeAttribute.SHAPE, (g -> "none"));
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/trace/graphoutput/DotTraceStyleStage.java b/src/main/java/kieker/analysis/trace/graphoutput/DotTraceStyleStage.java
deleted file mode 100644
index c8a12123440ee9f0c6d0285a5393548f5e1effe7..0000000000000000000000000000000000000000
--- a/src/main/java/kieker/analysis/trace/graphoutput/DotTraceStyleStage.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package kieker.analysis.trace.graphoutput;
-
-import kieker.analysis.util.graph.Graph;
-
-import teetime.stage.basic.AbstractTransformation;
-
-public class DotTraceStyleStage extends AbstractTransformation<Graph, Graph> {
-
-	// private final Map<String, String> nodeStyling = new HashMap<>();
-
-	public DotTraceStyleStage() {
-		super();
-		// nodeStyling.put("shape", "none"); // TODO add
-	}
-
-	@Override
-	protected void execute(final Graph graph) {
-		// graph.setProperty(DotExportPropertyTokens.DEFAULT_NODE_PROPERTIES, nodeStyling);
-		this.getOutputPort().send(graph);
-	}
-
-}
diff --git a/src/main/java/kieker/analysis/util/graph/export/dot/DotWriterStage.java b/src/main/java/kieker/analysis/util/graph/export/dot/DotWriterStage.java
index ae81d57437e5c663ff22d95483a99376a77ef57d..a8f42186f9face9273a1f1a6abe89af343143c63 100644
--- a/src/main/java/kieker/analysis/util/graph/export/dot/DotWriterStage.java
+++ b/src/main/java/kieker/analysis/util/graph/export/dot/DotWriterStage.java
@@ -9,16 +9,25 @@ import teetime.framework.AbstractConsumerStage;
 
 public class DotWriterStage extends AbstractConsumerStage<Graph> {
 
-	private final Function<Graph, Writer> writerMapper;
+	protected final Function<Graph, Writer> writerMapper;
+
+	protected final DotExportConfiguration exportConfiguration;
 
 	public DotWriterStage(final Function<Graph, Writer> writerMapper) {
 		super();
 		this.writerMapper = writerMapper;
+		this.exportConfiguration = new SimpleDotExportConfiguration();
+	}
+
+	public DotWriterStage(final Function<Graph, Writer> writerMapper, final DotExportConfiguration exportConfiguration) {
+		super();
+		this.writerMapper = writerMapper;
+		this.exportConfiguration = exportConfiguration;
 	}
 
 	@Override
 	protected final void execute(final Graph graph) {
-		DotExporter dotExporter = new DotExporter(graph, writerMapper.apply(graph));
+		DotExporter dotExporter = new DotExporter(graph, writerMapper.apply(graph), exportConfiguration);
 		dotExporter.transform();
 	}