diff --git a/trainbenchmark-tool-jastadd-specialized-base/src/main/jastadd/ASTPrinting.jadd b/trainbenchmark-tool-jastadd-specialized-base/src/main/jastadd/ASTPrinting.jadd
new file mode 100644
index 0000000000000000000000000000000000000000..7b98c380fd57dbe5d1a3709950f17b30cedf236d
--- /dev/null
+++ b/trainbenchmark-tool-jastadd-specialized-base/src/main/jastadd/ASTPrinting.jadd
@@ -0,0 +1,31 @@
+aspect RefinedPrinting {
+
+  refine Printing public String ASTNode.getASTString() {
+
+    String result = this.getNodeTitle() + "\n";
+
+    for(int childIndex = 0; childIndex < getNumChildNoTransform(); childIndex++) {
+
+      ASTNode<?> child = getChildNoTransform(childIndex);
+      String childString = "N\n";
+      String pointString = ".";
+      if(child != null) {
+        childString = child.getASTString();
+        // pointString = child.pointName() + ".";
+      }
+
+      if(childIndex < getNumChildNoTransform() - 1) {
+        childString = childString.replaceAll("(?m)^", "|     ");
+      } else {
+        childString = childString.replaceAll("(?m)^", "   ");
+      }
+
+      if(pointString.equals(".")) {
+        pointString = "";
+      }
+      result += "|\n|-----" + pointString + childString;
+    }
+
+    return result;
+  }
+}