diff --git a/examples/connectmultiplesfgs.py b/examples/connectmultiplesfgs.py
new file mode 100644
index 0000000000000000000000000000000000000000..20d29f22768233fb9a27d407dbc9622b1773e356
--- /dev/null
+++ b/examples/connectmultiplesfgs.py
@@ -0,0 +1,106 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+========================
+Connecting multiple SFGs
+========================
+
+It is sometimes useful to create several SFGs and later on connect them.
+One reason is using the SFG generators.
+
+Although connecting several SFGs is rather straightforward, it is also of
+interest to "flatten" the SFGs, i.e., get a resulting SFG not containing other
+SFGs but the operations of these. To do this, one will have to use the
+method :func:`~b_asic.signal_flow_graph.SFG.connect_external_signals_to_components`.
+
+This example illustrates how this can be done.
+"""
+
+from b_asic.sfg_generators import wdf_allpass
+from b_asic.signal_flow_graph import SFG
+from b_asic.special_operations import Input, Output
+
+# Generate allpass branches for fifth-ordet LWDF filter
+allpass1 = wdf_allpass([0.2, 0.5])
+allpass2 = wdf_allpass([-0.5, 0.2, 0.5])
+
+in_lwdf = Input()
+allpass1 << in_lwdf
+allpass2 << in_lwdf
+out_lwdf = Output((allpass1 + allpass2) * 0.5)
+
+# Create SFG of LWDF with two internal SFGs
+sfg_with_sfgs = SFG(
+    [in_lwdf], [out_lwdf], name="LWDF with separate internals SFGs for allpass branches"
+)
+
+# %%
+# Rendering the SFG will result in something like:
+#
+# .. graphviz::
+#
+#   digraph {
+#       rankdir=LR
+#       in1 [shape=cds]
+#       in1 -> sfg1
+#       in1 -> sfg2
+#       out1 [shape=cds]
+#       cmul1 -> out1
+#       sfg1 [shape=ellipse]
+#       sfg1 -> add1
+#       add1 [shape=ellipse]
+#       sfg2 -> add1
+#       sfg2 [shape=ellipse]
+#       add1 -> cmul1
+#       cmul1 [shape=ellipse]
+#   }
+#
+# Now, to create a LWDF where the SFGs are flattened. Note that the original SFGs
+# ``allpass1`` and ``allpass2`` currently cannot be printed etc after this operation.
+
+allpass1.connect_external_signals_to_components()
+allpass2.connect_external_signals_to_components()
+flattened_sfg = SFG([in_lwdf], [out_lwdf], name="Flattened LWDF")
+
+# %%
+# Resulting in:
+#
+# .. graphviz::
+#
+#   digraph {
+#       rankdir=LR
+#       in1 [shape=cds]
+#       in1 -> sym2p1
+#       in1 -> sym2p4
+#       out1 [shape=cds]
+#       cmul1 -> out1
+#       sym2p1 [shape=ellipse]
+#       sym2p2 -> sym2p1
+#       sym2p2 [shape=ellipse]
+#       sym2p1 -> add1
+#       add1 [shape=ellipse]
+#       sym2p1 -> t1
+#       t1 [shape=square]
+#       t1 -> sym2p2
+#       sym2p3 -> add1
+#       sym2p3 [shape=ellipse]
+#       add1 -> cmul1
+#       cmul1 [shape=ellipse]
+#       sym2p4 -> sym2p3
+#       sym2p4 [shape=ellipse]
+#       sym2p5 -> sym2p3
+#       sym2p5 [shape=ellipse]
+#       sym2p3 -> t2
+#       t2 [shape=square]
+#       t2 -> sym2p5
+#       t3 -> sym2p5
+#       t3 [shape=square]
+#       sym2p5 -> t3
+#       t4 -> sym2p4
+#       t4 [shape=square]
+#       sym2p4 -> t4
+#       t5 -> sym2p2
+#       t5 [shape=square]
+#       sym2p2 -> t5
+#   }
+#
diff --git a/examples/lwdfallpass.py b/examples/lwdfallpass.py
new file mode 100644
index 0000000000000000000000000000000000000000..15609f6c8b5e7709ee49bf8d367bc232e3731c64
--- /dev/null
+++ b/examples/lwdfallpass.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+================================
+LWDF first-order allpass section
+================================
+
+This has different latency offsets for the different inputs/outputs.
+"""
+
+from b_asic.core_operations import SymmetricTwoportAdaptor
+from b_asic.schedule import Schedule
+from b_asic.signal_flow_graph import SFG
+from b_asic.special_operations import Delay, Input, Output
+
+in0 = Input()
+
+d0 = Delay()
+adaptor0 = SymmetricTwoportAdaptor(
+    0.5, in0, d0, latency_offsets={"in0": 0, "in1": 1, "out0": 5, "out1": 6}
+)
+d0 << adaptor0.output(1)
+out0 = Output(adaptor0.output(0))
+adaptor0.execution_time = 2
+sfg = SFG([in0], [out0])
+schedule = Schedule(sfg)
+schedule.show()