     /// Closes all connections
     @discardableResult
     public func disconnect() -> EventLoopFuture<Void> {
+        logger.debug("Disconnecting MongoDB Cluster")
         return self.eventLoop.flatSubmit {
             self.wireVersion = nil
             self.isClosed = true

            return PooledConnection(host: host, connection: connection)
        }

        connection.whenFailure { error in
            self.timeoutHosts.insert(host)
            self.discoveredHosts.remove(host)
        }

            })
        }

        if !timeoutHosts.isEmpty {
            logger.info("Resetting timeout for \(timeoutHosts.count) hosts")
        }
        
        self.timeoutHosts = []
        let done = EventLoopFuture<Void>.andAllComplete(handshakes, on: self.eventLoop)
        if let didRediscover = self.didRediscover {
