diff --git a/mirai-core/src/commonMain/kotlin/network/handler/NetworkHandlerSupport.kt b/mirai-core/src/commonMain/kotlin/network/handler/NetworkHandlerSupport.kt
index 580669376..ed9a11aec 100644
--- a/mirai-core/src/commonMain/kotlin/network/handler/NetworkHandlerSupport.kt
+++ b/mirai-core/src/commonMain/kotlin/network/handler/NetworkHandlerSupport.kt
@@ -37,6 +37,28 @@ internal abstract class NetworkHandlerSupport(
     protected abstract fun initialState(): BaseStateImpl
     protected abstract suspend fun sendPacketImpl(packet: OutgoingPacket)
 
+    protected fun collectUnknownPacket(raw: RawIncomingPacket) {
+        packetLogger.debug { "Unknown packet: commandName=${raw.commandName}, body=${raw.body.toUHexString()}" }
+        // may add hooks here (to context)
+    }
+
+    override fun close(cause: Throwable?) {
+//        if (cause == null) {
+//            logger.info { "NetworkHandler '$this' closed" }
+//        } else {
+//            logger.info { "NetworkHandler '$this' closed: $cause" }
+//        }
+        coroutineContext.job.cancel("NetworkHandler closed", cause)
+    }
+
+    protected val packetLogger: MiraiLogger by lazy {
+        MiraiLogger.create(context.logger.identity + ".debug").withSwitch(PacketCodec.PACKET_DEBUG)
+    }
+
+    ///////////////////////////////////////////////////////////////////////////
+    // packets synchronization impl
+    ///////////////////////////////////////////////////////////////////////////
+
     private val packetHandler: PacketHandler by lazy { context[PacketHandler] }
 
     /**
@@ -63,11 +85,6 @@ internal abstract class NetworkHandlerSupport(
         }
     }
 
-    protected fun collectUnknownPacket(raw: RawIncomingPacket) {
-        packetLogger.debug { "Unknown packet: commandName=${raw.commandName}, body=${raw.body.toUHexString()}" }
-        // may add hooks here (to context)
-    }
-
     final override suspend fun sendAndExpect(packet: OutgoingPacket, timeout: Long, attempts: Int): Packet? {
         val listener = PacketListener(packet.commandName, packet.sequenceId)
         withExceptionCollector {
@@ -97,23 +114,6 @@ internal abstract class NetworkHandlerSupport(
         sendPacketImpl(packet)
     }
 
-    override fun close(cause: Throwable?) {
-//        if (cause == null) {
-//            logger.info { "NetworkHandler '$this' closed" }
-//        } else {
-//            logger.info { "NetworkHandler '$this' closed: $cause" }
-//        }
-        coroutineContext.job.cancel("NetworkHandler closed", cause)
-    }
-
-    protected val packetLogger: MiraiLogger by lazy {
-        MiraiLogger.create(context.logger.identity + ".debug").withSwitch(PacketCodec.PACKET_DEBUG)
-    }
-
-    ///////////////////////////////////////////////////////////////////////////
-    // packets synchronization impl
-    ///////////////////////////////////////////////////////////////////////////
-
     protected class PacketListener(
         val commandName: String,
         val sequenceId: Int,
@@ -228,7 +228,12 @@ internal abstract class NetworkHandlerSupport(
         @OptIn(TestOnly::class)
         setStateImpl(newType as KClass<S>?, new)
 
-    // newType can be null iff in tests, to ignore checks.
+    /**
+     * This can only be called by [setState] or in tests.
+     *
+     * [newType] can be `null` **iff in tests**, to ignore checks.
+     */
+    //
     @TestOnly
     internal fun <S : BaseStateImpl> setStateImpl(newType: KClass<S>?, new: () -> S): S? = synchronized(this) {
         val old = _state