In the context of (current) new assumptions, doesn't this just involve implementing a ForwardingHandler class template?