diff --git a/src/main/java/kieker/analysis/trace/graphoutput/DotGraphWriter.java b/src/main/java/kieker/analysis/trace/graphoutput/DotGraphWriter.java
index e820174396c1fa018e9a328c4d3244caa642de9d..f5eab687cd7ecc4afd460823207e52d304f94953 100644
--- a/src/main/java/kieker/analysis/trace/graphoutput/DotGraphWriter.java
+++ b/src/main/java/kieker/analysis/trace/graphoutput/DotGraphWriter.java
@@ -6,6 +6,8 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.io.Writer;
+import java.util.HashMap;
+import java.util.Map;
 
 import com.tinkerpop.blueprints.Direction;
 import com.tinkerpop.blueprints.Edge;
@@ -13,7 +15,7 @@ import com.tinkerpop.blueprints.Graph;
 import com.tinkerpop.blueprints.Vertex;
 
 import kieker.analysis.trace.traversal.NamedGraph;
-import kieker.tools.traceAnalysis.filter.visualization.util.dot.DotFactory;
+import kieker.analysis.util.DotBuilder;
 
 import teetime.framework.AbstractConsumerStage;
 
@@ -39,39 +41,25 @@ public class DotGraphWriter extends AbstractConsumerStage<NamedGraph> {
 
 	private String createDotGraph(final Graph graph) {
 
-		StringBuilder dotGraph = new StringBuilder();
+		DotBuilder dotGraph = new DotBuilder();
+
+		Map<String, String> nodeProperties = new HashMap<>();
+		nodeProperties.put("shape", "none");
+
+		dotGraph.setDefaultNodeProperties(nodeProperties);
 
-		dotGraph.append(createDotGraphHead());
 		for (Vertex vertex : graph.getVertices()) {
-			dotGraph.append(createDotGraphVertex(vertex));
+			String label = vertex.getProperty("label");
+			dotGraph.addNode(String.valueOf(vertex.getId()), label);
 		}
+
 		for (Edge edge : graph.getEdges()) {
-			dotGraph.append(createDotGraphEdge(edge));
+			String source = edge.getVertex(Direction.OUT).getId().toString();
+			String target = edge.getVertex(Direction.IN).getId().toString();
+			dotGraph.addEdge(source, target, edge.getLabel());
 		}
-		dotGraph.append(createDotGraphFoot());
-
-		return dotGraph.toString();
-	}
-
-	private String createDotGraphHead() {
-		return "digraph g {";
-	}
-
-	private String createDotGraphFoot() {
-		return "}";
-	}
-
-	// TODO Using DotFactory?
-	private String createDotGraphVertex(final Vertex vertex) {
-		return DotFactory.createNode("", String.valueOf(vertex.getId()), vertex.getProperty("label"),
-				null, null, null, null, null, 0, null, null, null).toString();
-	}
 
-	// TODO Using DotFactory?
-	private String createDotGraphEdge(final Edge edge) {
-		String source = edge.getVertex(Direction.OUT).getId().toString();
-		String target = edge.getVertex(Direction.IN).getId().toString();
-		return DotFactory.createConnection("", source, target, 0, 0);
+		return dotGraph.get();
 	}
 
 	private void writeDotGraphFile(final String dotGraph, final String fileName) throws IOException {
diff --git a/src/main/java/kieker/analysis/trace/traversal/AggrTraceToGraphTransformer.java b/src/main/java/kieker/analysis/trace/traversal/AggrTraceToGraphTransformer.java
index d9e3aab900fbacea42a4db4dbdadcb19e9eb925a..17966a748b5dcdf748f71e2ec6ef02bb418b4ae4 100644
--- a/src/main/java/kieker/analysis/trace/traversal/AggrTraceToGraphTransformer.java
+++ b/src/main/java/kieker/analysis/trace/traversal/AggrTraceToGraphTransformer.java
@@ -27,7 +27,8 @@ public class AggrTraceToGraphTransformer extends AbstractTraceToGraphTransformer
 			return null;
 		}
 
-		return graph.addEdge(null, parentVertex, thisVertex, "");
+		// TODO Add label
+		return graph.addEdge(null, parentVertex, thisVertex, "ID");
 	}
 
 }
diff --git a/src/main/java/kieker/analysis/trace/traversal/TraceToGraphTransformer.java b/src/main/java/kieker/analysis/trace/traversal/TraceToGraphTransformer.java
index 83abd319427d66dbf63e6f731b46f44509171fd7..01f1ad35e133e72b5776d9e96f36d40194d897ee 100644
--- a/src/main/java/kieker/analysis/trace/traversal/TraceToGraphTransformer.java
+++ b/src/main/java/kieker/analysis/trace/traversal/TraceToGraphTransformer.java
@@ -26,7 +26,8 @@ public class TraceToGraphTransformer extends AbstractTraceToGraphTransformer<Ope
 			return null;
 		}
 
-		return graph.addEdge(null, parentVertex, thisVertex, "");
+		// TODO Add label
+		return graph.addEdge(null, parentVertex, thisVertex, "ID");
 	}
 
 }