Response arbitration is delegated to top level.

This implementation ended up closely resembling @skeggse #15.
Resolves #15.