     private(set) var live: Live?
 
     // Private Properties
-    // TODO: make `connectRequests`
-    private var ongoingConnectRequest: ConnectRequest?
-    private var lastEstablishedConnectRequest: ConnectRequest?
+    private var connectRequests: ConnectRequests =
+        ConnectRequests(
+            onGoing: nil,
+            lastEstablished: nil
+        )
     private var userSessionCookie: String?
     private let session: Session
     private var managingSocket: WebSocket?

extension NicoUtility {
    func connect(liveNumber: Int, sessionType: NicoSessionType, connectContext: NicoUtility.ConnectContext = .normal) {
        // 1. Save connection request.
        ongoingConnectRequest = ConnectRequest(
            liveNumber: liveNumber,
            sessionType: sessionType
        )
        lastEstablishedConnectRequest = nil

        // 2. Save chat numbers.
        switch connectContext {

    enum ConnectContext {
        case normal, reconnect
    }
    struct ConnectRequests {
        // swiftlint:disable nesting
        struct Request {
            let liveNumber: Int
            let sessionType: NicoSessionType
        }
        // swiftlint:enable nesting
        var onGoing: Request?
        var lastEstablished: Request?
    }
    struct ChatNo {
        var latest: Int
