diff --git a/src/main/java/kieker/analysis/graph/GraphTester.java b/src/main/java/kieker/analysis/graph/GraphTester.java
index 99a6ad248886913acbe5482a50558b495b683e88..19cbaaedc9d3e1955e34e89388aeb6bc1f901e69 100644
--- a/src/main/java/kieker/analysis/graph/GraphTester.java
+++ b/src/main/java/kieker/analysis/graph/GraphTester.java
@@ -3,7 +3,7 @@ package kieker.analysis.graph;
 import java.io.OutputStreamWriter;
 import java.util.ArrayList;
 
-import kieker.analysis.graph.export.dot.DotWriter2;
+import kieker.analysis.graph.export.dot.DotWriter;
 import kieker.analysis.graph.export.graphml.GraphMLExporter;
 import kieker.analysis.graph.impl.GraphImpl;
 
@@ -99,7 +99,7 @@ public class GraphTester {
 		GraphMLExporter graphMLExporter = new GraphMLExporter();
 		graphMLExporter.export(graph, System.out);
 
-		DotWriter2 dotWriter = new DotWriter2(graph, new OutputStreamWriter(System.out));
+		DotWriter dotWriter = new DotWriter(graph, new OutputStreamWriter(System.out));
 		dotWriter.transform();
 
 		// DotExporter dotExporter = new DotExporter();
diff --git a/src/main/java/kieker/analysis/graph/export/AbstractTransformer.java b/src/main/java/kieker/analysis/graph/export/AbstractTransformer.java
index acb567fbe9e6319c81d1072d08c15ab084b3645f..352a176717621097df4696b83669845e7e3f0691 100644
--- a/src/main/java/kieker/analysis/graph/export/AbstractTransformer.java
+++ b/src/main/java/kieker/analysis/graph/export/AbstractTransformer.java
@@ -20,29 +20,33 @@ public abstract class AbstractTransformer<O> implements VertexVisitor, EdgeVisit
 
 	public final O transform() {
 
-		// Call startTransformation()
+		beforeTransformation();
 
 		graphTraverser.traverse(graph);
 
-		// Call finishTransformation()
+		afterTransformation();
 
 		return getTransformation();
 	}
 
-	protected abstract void mapVertex(Vertex vertex);
+	protected abstract void beforeTransformation();
 
-	protected abstract void mapEdge(Edge edge);
+	protected abstract void afterTransformation();
+
+	protected abstract void transformVertex(Vertex vertex);
+
+	protected abstract void transformEdge(Edge edge);
 
 	protected abstract O getTransformation();
 
 	@Override
 	public void visitVertex(final Vertex vertex) {
-		mapVertex(vertex);
+		transformVertex(vertex);
 	}
 
 	@Override
 	public void visitEdge(final Edge edge) {
-		mapEdge(edge);
+		transformEdge(edge);
 	}
 
 }
diff --git a/src/main/java/kieker/analysis/graph/export/AbstractWriter.java b/src/main/java/kieker/analysis/graph/export/AbstractWriter.java
deleted file mode 100644
index 05a16a63168372ee2d17b1a09836fadfa36f7965..0000000000000000000000000000000000000000
--- a/src/main/java/kieker/analysis/graph/export/AbstractWriter.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package kieker.analysis.graph.export;
-
-import kieker.analysis.graph.Edge;
-import kieker.analysis.graph.Graph;
-import kieker.analysis.graph.Vertex;
-
-public abstract class AbstractWriter extends AbstractTransformer<Void> {
-
-	protected AbstractWriter(final Graph graph) {
-		super(graph);
-	}
-
-	@Override
-	protected final void mapVertex(final Vertex vertex) {
-		writeVertex(vertex);
-	}
-
-	@Override
-	protected final void mapEdge(final Edge edge) {
-		writeEdge(edge);
-	}
-
-	@Override
-	protected final Void getTransformation() {
-		finish();
-		return null;
-	}
-
-	protected abstract void start();
-
-	protected abstract void finish();
-
-	protected abstract void writeVertex(Vertex vertex);
-
-	protected abstract void writeEdge(Edge edge);
-
-}
diff --git a/src/main/java/kieker/analysis/graph/export/blueprints/BlueprintsTransformer.java b/src/main/java/kieker/analysis/graph/export/blueprints/BlueprintsTransformer.java
index 2a1071f31b720aa93096f233b89390ac56f09edb..3f474754ccbbe8b3e66935ef9a350ccadbc44334 100644
--- a/src/main/java/kieker/analysis/graph/export/blueprints/BlueprintsTransformer.java
+++ b/src/main/java/kieker/analysis/graph/export/blueprints/BlueprintsTransformer.java
@@ -23,7 +23,7 @@ public class BlueprintsTransformer extends AbstractTransformer<com.tinkerpop.blu
 	}
 
 	@Override
-	protected void mapVertex(final Vertex vertex) {
+	protected void transformVertex(final Vertex vertex) {
 		com.tinkerpop.blueprints.Vertex mappedVertex = transformedGraph.addVertex(vertex.getId());
 		mappedVertices.put(vertex, mappedVertex);
 		for (final String propertyKey : vertex.getPropertyKeys()) {
@@ -33,7 +33,7 @@ public class BlueprintsTransformer extends AbstractTransformer<com.tinkerpop.blu
 	}
 
 	@Override
-	protected void mapEdge(final Edge edge) {
+	protected void transformEdge(final Edge edge) {
 		final com.tinkerpop.blueprints.Vertex mappedInVertex = mappedVertices.get(edge.getVertex(Direction.IN));
 		final com.tinkerpop.blueprints.Vertex mappedOutVertex = mappedVertices.get(edge.getVertex(Direction.OUT));
 		String label = edge.getProperty(LABEL_PROPERTY);
@@ -51,4 +51,14 @@ public class BlueprintsTransformer extends AbstractTransformer<com.tinkerpop.blu
 		return transformedGraph;
 	}
 
+	@Override
+	protected void beforeTransformation() {
+		// Do nothing
+	}
+
+	@Override
+	protected void afterTransformation() {
+		// Do nothing
+	}
+
 }
diff --git a/src/main/java/kieker/analysis/graph/export/dot/AbstractDotWriter.java b/src/main/java/kieker/analysis/graph/export/dot/DotElementWriter.java
similarity index 66%
rename from src/main/java/kieker/analysis/graph/export/dot/AbstractDotWriter.java
rename to src/main/java/kieker/analysis/graph/export/dot/DotElementWriter.java
index 67859b98eb76a6adbf8f5b57e1b38879cf9c59ba..f64fa1f170ecbd03dc16adb38bd596f7ff3c3756 100644
--- a/src/main/java/kieker/analysis/graph/export/dot/AbstractDotWriter.java
+++ b/src/main/java/kieker/analysis/graph/export/dot/DotElementWriter.java
@@ -6,21 +6,21 @@ import kieker.analysis.graph.Direction;
 import kieker.analysis.graph.Edge;
 import kieker.analysis.graph.Graph;
 import kieker.analysis.graph.Vertex;
-import kieker.analysis.graph.export.AbstractWriter;
+import kieker.analysis.graph.export.AbstractTransformer;
 import kieker.analysis.graph.util.dot.DotGraphWriter;
 
 //TODo rename, extends AbstractWriter
-class AbstractDotWriter extends AbstractWriter {
+class DotElementWriter extends AbstractTransformer<Void> {
 
 	protected final DotGraphWriter dotWriter;
 
-	protected AbstractDotWriter(final Graph graph, final DotGraphWriter dotWriter) {
+	protected DotElementWriter(final Graph graph, final DotGraphWriter dotWriter) {
 		super(graph);
 		this.dotWriter = dotWriter;
 	}
 
 	@Override
-	protected void writeVertex(final Vertex vertex) {
+	protected void transformVertex(final Vertex vertex) {
 		try {
 			if (vertex.hasChildGraph()) {
 				Graph childGraph = vertex.getChildGraph();
@@ -28,7 +28,7 @@ class AbstractDotWriter extends AbstractWriter {
 				dotWriter.addClusterStart(childGraph.getName());
 				// TODO more stuff
 
-				AbstractDotWriter dotWriter2 = new AbstractDotWriter(childGraph, dotWriter);
+				DotElementWriter dotWriter2 = new DotElementWriter(childGraph, dotWriter);
 				dotWriter2.transform();
 
 				dotWriter.addClusterStop();
@@ -43,7 +43,7 @@ class AbstractDotWriter extends AbstractWriter {
 	}
 
 	@Override
-	protected void writeEdge(final Edge edge) {
+	protected void transformEdge(final Edge edge) {
 		try {
 			String sourceId = edge.getVertex(Direction.OUT).getId().toString();
 			String targetId = edge.getVertex(Direction.IN).getId().toString();
@@ -54,18 +54,24 @@ class AbstractDotWriter extends AbstractWriter {
 
 	}
 
+	protected void handleIOException(final IOException ioException) {
+		// TODO Handle IO Exception
+	}
+
 	@Override
-	protected void start() {
+	protected void beforeTransformation() {
 		// Do nothing
+
 	}
 
 	@Override
-	protected void finish() {
+	protected void afterTransformation() {
 		// Do nothing
 	}
 
-	protected void handleIOException(final IOException ioException) {
-		// TODO Handle IO Exception
+	@Override
+	protected Void getTransformation() {
+		return null;
 	}
 
 }
diff --git a/src/main/java/kieker/analysis/graph/export/dot/DotSubgraphWriter.java b/src/main/java/kieker/analysis/graph/export/dot/DotSubgraphWriter.java
deleted file mode 100644
index fa8b2a2af901ad742fdf991fea137f446b236593..0000000000000000000000000000000000000000
--- a/src/main/java/kieker/analysis/graph/export/dot/DotSubgraphWriter.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package kieker.analysis.graph.export.dot;
-
-import java.io.IOException;
-
-import kieker.analysis.graph.Direction;
-import kieker.analysis.graph.Edge;
-import kieker.analysis.graph.Graph;
-import kieker.analysis.graph.Vertex;
-import kieker.analysis.graph.export.AbstractTransformer;
-import kieker.analysis.graph.util.dot.DotGraphWriter;
-
-//TODO not used
-class DotSubgraphWriter extends AbstractTransformer<Void> {
-
-	private final DotGraphWriter dotWriter;
-
-	protected DotSubgraphWriter(final Graph graph, final DotGraphWriter dotWriter) {
-		super(graph);
-		this.dotWriter = dotWriter;
-	}
-
-	@Override
-	protected void mapVertex(final Vertex vertex) {
-		try {
-			if (vertex.hasChildGraph()) {
-				Graph childGraph = vertex.getChildGraph();
-
-				dotWriter.addClusterStart(childGraph.getName());
-				// TODO more stuff
-
-				DotSubgraphWriter dotWriter2 = new DotSubgraphWriter(childGraph, dotWriter);
-				dotWriter2.transform();
-
-				dotWriter.addClusterStop();
-			} else {
-
-				dotWriter.addNode(vertex.getId().toString(), null); // TODO
-
-			}
-		} catch (IOException e) {
-			// TODO Handle IO Exception
-		}
-	}
-
-	@Override
-	protected void mapEdge(final Edge edge) {
-		// TODO Auto-generated method stub
-
-		try {
-
-			String sourceId = edge.getVertex(Direction.OUT).getId().toString();
-			String targetId = edge.getVertex(Direction.IN).getId().toString();
-			dotWriter.addEdge(sourceId, targetId); // TODO
-		} catch (IOException e) {
-			// TODO Handle IO Exception
-		}
-
-	}
-
-	@Override
-	protected Void getTransformation() {
-		return null;
-	}
-
-}
diff --git a/src/main/java/kieker/analysis/graph/export/dot/DotWriter2.java b/src/main/java/kieker/analysis/graph/export/dot/DotWriter.java
similarity index 68%
rename from src/main/java/kieker/analysis/graph/export/dot/DotWriter2.java
rename to src/main/java/kieker/analysis/graph/export/dot/DotWriter.java
index c1ba90a7f94ec45413dbb33fa8f2be0575e3867d..9f0abb172c7135de03ff5428c82b9a5c2c9f44bf 100644
--- a/src/main/java/kieker/analysis/graph/export/dot/DotWriter2.java
+++ b/src/main/java/kieker/analysis/graph/export/dot/DotWriter.java
@@ -7,15 +7,14 @@ import kieker.analysis.graph.Graph;
 import kieker.analysis.graph.util.dot.DotGraphWriter;
 
 //TODO rename
-public class DotWriter2 extends AbstractDotWriter {
+public class DotWriter extends DotElementWriter {
 
-	public DotWriter2(final Graph graph, final Writer writer) {
+	public DotWriter(final Graph graph, final Writer writer) {
 		super(graph, new DotGraphWriter(writer));
 	}
 
-	// TODO does not work so far
 	@Override
-	protected void start() {
+	protected void beforeTransformation() {
 		try {
 			dotWriter.start(graph.getName());
 			// TODO more stuff
@@ -25,7 +24,7 @@ public class DotWriter2 extends AbstractDotWriter {
 	}
 
 	@Override
-	protected void finish() {
+	protected void afterTransformation() {
 		try {
 			dotWriter.finish();
 		} catch (IOException e) {
diff --git a/src/main/java/kieker/analysis/graph/export/dot/GraphTransformer.java b/src/main/java/kieker/analysis/graph/export/dot/GraphTransformer.java
index 15aaff8130c5af3b83c9bf5405055b4db9a2b1df..2e08c20b899df5ee699686bf60248320f597cbe0 100644
--- a/src/main/java/kieker/analysis/graph/export/dot/GraphTransformer.java
+++ b/src/main/java/kieker/analysis/graph/export/dot/GraphTransformer.java
@@ -7,6 +7,7 @@ import kieker.analysis.graph.Vertex;
 import kieker.analysis.graph.export.AbstractTransformer;
 import kieker.analysis.util.DotBuilder;
 
+//TODO remove
 public class GraphTransformer extends AbstractTransformer<String> {
 
 	private final DotBuilder dotBuilder;
@@ -22,7 +23,7 @@ public class GraphTransformer extends AbstractTransformer<String> {
 	}
 
 	@Override
-	protected void mapVertex(final Vertex vertex) {
+	protected void transformVertex(final Vertex vertex) {
 		if (vertex.hasChildGraph()) {
 			Graph childGraph = vertex.getChildGraph();
 			GraphTransformer graphTransformer = new GraphTransformer(childGraph, false);
@@ -37,7 +38,7 @@ public class GraphTransformer extends AbstractTransformer<String> {
 	}
 
 	@Override
-	protected void mapEdge(final Edge edge) {
+	protected void transformEdge(final Edge edge) {
 		String sourceId = edge.getVertex(Direction.OUT).getId().toString();
 		String targetId = edge.getVertex(Direction.IN).getId().toString();
 		dotBuilder.addEdge(sourceId, targetId);
@@ -50,4 +51,16 @@ public class GraphTransformer extends AbstractTransformer<String> {
 		return dotBuilder.get();
 	}
 
+	@Override
+	protected void beforeTransformation() {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	protected void afterTransformation() {
+		// TODO Auto-generated method stub
+
+	}
+
 }
diff --git a/src/main/java/kieker/analysis/graph/export/graphml/GraphTypeTransformer.java b/src/main/java/kieker/analysis/graph/export/graphml/GraphTypeTransformer.java
index 02420b50aa02b0e0a76be151d6ab6a63995fd41c..1ee3cfe916f67b4c5450ce601d5c5b67c931bf06 100644
--- a/src/main/java/kieker/analysis/graph/export/graphml/GraphTypeTransformer.java
+++ b/src/main/java/kieker/analysis/graph/export/graphml/GraphTypeTransformer.java
@@ -26,7 +26,7 @@ public class GraphTypeTransformer extends AbstractTransformer<GraphType> {
 	}
 
 	@Override
-	protected void mapVertex(final Vertex vertex) {
+	protected void transformVertex(final Vertex vertex) {
 
 		NodeType nodeType = new NodeType();
 		nodeType.setId(vertex.getId().toString());
@@ -49,7 +49,7 @@ public class GraphTypeTransformer extends AbstractTransformer<GraphType> {
 	}
 
 	@Override
-	protected void mapEdge(final Edge edge) {
+	protected void transformEdge(final Edge edge) {
 		EdgeType edgeType = new EdgeType();
 		edgeType.setId(edge.getId().toString());
 		edgeType.setSource(edge.getVertex(Direction.OUT).getId().toString());
@@ -70,4 +70,14 @@ public class GraphTypeTransformer extends AbstractTransformer<GraphType> {
 		return graphType;
 	}
 
+	@Override
+	protected void beforeTransformation() {
+		// Do nothing
+	}
+
+	@Override
+	protected void afterTransformation() {
+		// Do nothing
+	}
+
 }