The Chain Of Responsibility Design Pattern reified. Such a chain is made of handlers you can add or
remove at your leisure.
The Chain itself is a Command (see that Design Pattern). Executing that command looks for a handler
that can handle a request, and let it handle that request.
How you do implement the query is up to you. The handlers are given Current i.e. the Chain itself, and
CHAIN_HANDLER is a generic class so you can implement your own protocol.