runClient protocol torrentProcPath cachePath serverDesc = do
  proc <- uTorrentProc torrentProcPath

  let btC = clientBTClientConfig {
                btProc = proc
              , outgoingRedirects
                             = redirectToRev (serverAddr serverDesc) serverBTClientConfig
              }

  Client.clientConnect (ClientConfig btC serverDesc cachePath) protocol 
runClient protocol torrentProcPath cachePath serverDesc = do
  proc <- uTorrentProc torrentProcPath

  let btC = clientBTClientConfig {
                btProc = proc
              , outgoingRedirects
                             = redirectToRev (serverAddr serverDesc) serverBTClientConfig
              }

  Client.clientConnect (ClientConfig btC serverDesc cachePath) protocol 
runClient protocol torrentProcPath cachePath serverDesc = do
  proc <- uTorrentProc torrentProcPath

  let btC = clientBTClientConfig {
                btProc = proc
              , outgoingRedirects
                             = redirectToRev (serverAddr serverDesc) serverBTClientConfig
              }

  Client.clientConnect (ClientConfig btC serverDesc cachePath) protocol 