The big picture of Objective-C invocation forwarding.
It is a common API design pattern. But how to do it in Swift is not well known.
Rules to follow when designing initializers.
How do method lookup, dynamic resolution and message forwarding work together in objc_msgSend?
Wherever delegate works block also works, but sometimes delegate is still a better choice in API design.
The danger is in the invisible. The danger is in regions that are out of your control.
KVO is a very nice programming facility, except for some annoying defects.