diff --git a/pages/docs/using.md b/pages/docs/using.md
index af1cfdc0f968b0fbb9dd397ef10ca2ced76290d7..04472f13a6818e4b67fb26fad4bd6df36d10c6b0 100644
--- a/pages/docs/using.md
+++ b/pages/docs/using.md
@@ -12,75 +12,48 @@ import your.model.Model;
 import your.model.ASTNode;
 
 import java.io.IOException;
+import java.io.OutputStream;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 
 public class Main {
-    public static void main(String[] args) throws IOException, TransformationException {
-        Model model = createModel();  // (1)
-
-        DumpBuilder builder = Dumper.read(model)  // (2)
-            .includeChildWhen((parentNode, childNode, contextName) -> {
-                if (parentNode instanceof Robot && ((Robot) parentNode).getName().equals("Robot2")) {
-                    return false;
-                }
-                return !contextName.equals("EndEffector");
-            })  // (3)
-            .includeAttributes("*go")
-            .excludeAttributes("logo")
-            .includeAttributesFor("logo", "Robot")  // (4)
-            .setNameMethod(node -> node.getClass().getSimpleName())  // (5)
-            .setBackgroundColorMethod<ASTNode>(node -> node.size() > 30 ? "blue" : "white")
-            .skinParam(SkinParamBooleanSetting.Shadowing, false);  // (6)
-        builder.dumpAsPng(Paths.get("featureTest.png"));  // (7)
-        builder.dumpAsSVG(Paths.get("featureTest.svg"));  // (8)
-    }
+  public static void main(String[] args) throws IOException, TransformationException {
+    Model model = createModel();  // (1)
+
+    DumpBuilder builder = Dumper.read(model)  // (2)
+        .includeChild((parentNode, childNode, contextName) -> {  // (3)
+          if (parentNode instanceof Robot && ((Robot) parentNode).getName().equals("Robot2")) {
+            return false;
+          }
+          return !contextName.equals("EndEffector");
+        })
+        .style((node, style) -> {
+          style.useSimpleName();  // (4)
+          style.setBackgroundColor(node.size() > 30 ? "blue" : "white");  // (5)
+        })
+        .skinParam(SkinParamBooleanSetting.Shadowing, false);  // (6)
+    builder.dumpAsPng(Paths.get("featureTest.png"));  // (7)
+    builder.dumpAsSVG(Paths.get("featureTest.svg"));  // (8)
+    OutputStream os = getMyOutputStream();
+    builder.dumpAsPNG(os);  // (9)
+  }
 }
 ```
 
 DumpAst uses the [Builder design pattern](https://en.wikipedia.org/wiki/Builder_pattern) as well as a [fluent API](https://en.wikipedia.org/wiki/Fluent_interface).
 That means, first, all settings are specified (2-6), and only after a "dump"-method is called (7,8) the actual snapshot is taken.
-For filtering the output, there are two ways: using lambda functions (`include___When` methods) and using include/exclude mechanism (`include___`, `include___For`, `exclude___`, `exclude___For`).
-The latter has been deprecated since `2.0.1`.
+For filtering the output, there are various lambda functions (`include___`).
 Those methods are available for children, attributes, relations and tokens.
-The methods using lambda functions are preferred, as they are more powerful.
+By default, all children, relations and tokens are included in the output, whereas all attributes are excluded.
 
 The steps in detail:
 
 - (1) In the beginning, your model is somehow constructed and changed. This is indicated with the method `createModel`.
 - (2) The first call is always `Dumper.read()` to which the (part of the) AST is provided as an argument. It returns an object of type [DumpBuilder](../ragdoc/#/type/DumpBuilder). With this object, the output can be changed.
-- (3) [Optional] You can only include nodes of certain types by using `includeChildWhen` and passing a lambda function, which is called for every node and should return `true` if the `childNode` shall be included in the output. It defaults to returning `true` for every node. Here, all children of a `Robot` node (except if the name of the robot is `"Robot2"`) and all children of the context named `"EndEffector"` are excluded. This way of configuring the output is the preferred one.
-- (4) [Optional] The alternative (legacy) mechanism for inclusion and exclusion is described at [DumpBuilder](../ragdoc/#/type/DumpBuilder). Attributes are excluded per default. Here, an attribute whose name ends with `"go"` is included. However, it is excluded again when it is named `"logo"`, except for nodes of type `Robot` where it is included (again).
-- (5) [Optional] To use a different name for nodes, use `setNameMethod`. The default is to use the class name along with the hashcode of the object (`n -> n == null ? "null" : n.getClass().getSimpleName() + "@" + Integer.toHexString(n.hashCode())`).
+- (3) [Optional] You can only include nodes of certain types by using `includeChild` and passing a lambda function, which is called for every node and should return `true` if the `childNode` shall be included in the output. It defaults to returning `true` for every node. Here, all children of a `Robot` node (except if the name of the robot is `"Robot2"`) and all children of the context named `"EndEffector"` are excluded.
+- (4) and (5) [Optional] To style a node, the `style` is used. It accepts a lambda function, in which the style of every node can be customized by calling methods on the given `Style` object, e.g. setting the name (5) or background color (6). The default name is to use the class name along with the hashcode of the object (`node == null ? "null" : node.getClass().getSimpleName() + "@" + Integer.toHexString(node.hashCode())`).
 - (6) [Optional] There are a few ways to style the output in general through [SkinParam](https://plantuml.com/de/skinparam). Not all of those parameters are supported; see `SkinParamBooleanSetting` and `SkinParamStringSetting`.
-- (7) and (8) To create a PNG image, use `dumpAsPng` (for SVG, use `dumpAsSVG`). Those methods do not return the builder object, as they produce an output. They potentially throw two kinds of exception: `IOException` (when the file could not be written) and `TransformationException` (when the AST could not be processed). As shown here, the builder object must be stored in a variable to create multiple outputs.
+- (7), (8) and (9) To create an output image, use `dumpAsPng` for PNG (`dumpAsSVG` for SVG). Those methods do not return the builder object, as they produce an output. They potentially throw two kinds of exception: `IOException` (when the file could not be written) and `TransformationException` (when the AST could not be processed). As shown here, the builder object must be stored in a variable to create multiple outputs. Alternatively to a file, the result can be written to a given `OutputStream` (9).
 
 To summarise the required steps: Specify the AST to read in, configure the output, and write ("dump") the output.
 For more configuration options, please consult the [API Docs of DumpBuilder](../ragdoc/#/type/DumpBuilder).
-
-## (Deprecated) Inclusion and Exclusion of Types
-
-Types can only be disabled; see `disableTypes(String, String...)` in the [API Docs of DumpBuilder](../ragdoc/#/type/DumpBuilder).
-
-### Inclusion and Exclusion of children, tokens and relations
-
-Children, tokens and relations are included by default.
-This can be changed using exclusions and inclusion, both in general and per-type.
-They are applied in the following order making later conditions take precedence over the first ones.
-
-1. Include everything as default.
-1. Exclude general.
-1. Include per type.
-1. Exclude per type.
-
-### Inclusion and Exclusion of Attributes
-
-Attributes are excluded by default, i.e., not shown.
-This can be changed using inclusions and exclusions, both in general and per-type.
-They are applied in the following order making later conditions take precedence over the first ones.
-
-1. Exclude everything as default.
-1. Include general.
-1. Exclude per type.
-1. Include per type
-