By declaring the signals as void, we do lose error reporting from the wallets. Not sure this is a big loss, but in case we'd like to keep this, boost::signals2 has various ways of combining the results from the handlers.