This describes how channels work. I see no suggestion how to remove force closures from the protocol.