diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,129 +1,133 @@
 # ChangeLog
 
-## 0.1.23
+## 0.1.24
 
 * Introducing `onConnectionEstablished` into `Hooks`.
 * Preparing for tls v2.1.
 
+## 0.1.23
+
+* Accidentally released using a wrong branch. Deprecated on Hackage.
+
 ## 0.1.22
 
-- Incresing activeConnectionIdLimit and fix a bug
+* Incresing activeConnectionIdLimit and fix a bug
 
 ## 0.1.21
 
-- Workaround for 0s paddings.
-- Another bug fix for packing Fin.
+* Workaround for 0s paddings.
+* Another bug fix for packing Fin.
 
 ## 0.1.20
 
-- Bug fix for packing Fin.
-- Proper handling for MAX_STREAM_DATA
-- util/{client,server} are now called util/{quic-client, quic-server}.
-- Renaming two command options for util/quic-client.
-- Supporting multiple targets in util/quic-client.
+* Bug fix for packing Fin.
+* Proper handling for MAX_STREAM_DATA
+* util/{client,server} are now called util/{quic-client, quic-server}.
+* Renaming two command options for util/quic-client.
+* Supporting multiple targets in util/quic-client.
 
 ## 0.1.19
 
-- Using network-control v0.1.
+* Using network-control v0.1.
 
 ## 0.1.18
 
-- Fixing a buf of 0-RTT where unidirectionalStream waits for SH.
-- Introducing ccVersion to start with Version1.
+* Fixing a buf of 0-RTT where unidirectionalStream waits for SH.
+* Introducing ccVersion to start with Version1.
 
 ## 0.1.17
 
-- Garding the new_connection_id attack.
+* Garding the new_connection_id attack.
 
 ## 0.1.16
 
-- Using tls v2.0.
+* Using tls v2.0.
 
 ## 0.1.15
 
-- Support customizing ClientHooks and ServerHooks config from tls
+* Support customizing ClientHooks and ServerHooks config from tls
 
 ## 0.1.14
 
-- Using crypto-token v0.1
+* Using crypto-token v0.1
 
 ## 0.1.13
 
-- Garding the path_request attack.
+* Garding the path_request attack.
 
 ## 0.1.12
 
-- Fixing build.
+* Fixing build.
 
 ## 0.1.11
 
-- Rescuing GHC 8.10, 9.0 and 9.2.
+* Rescuing GHC 8.10, 9.0 and 9.2.
 
 ## 0.1.11
 
-- Adding possibleMyStreams.
+* Adding possibleMyStreams.
 
 ## 0.1.10
 
-- Setting proper upper boundaries for the dependencies
+* Setting proper upper boundaries for the dependencies
 
 ## 0.1.9
 
-- Using the network-control package.
-- Rate control for some frames.
-- Announcing MaxStreams correctly.
+* Using the network-control package.
+* Rate control for some frames.
+* Announcing MaxStreams correctly.
 
 ## 0.1.8
 
-- Announcing MaxStreams properly.
-- Terminating a connection if the peer violates flow controls.
+* Announcing MaxStreams properly.
+* Terminating a connection if the peer violates flow controls.
 
 ## 0.1.7
 
-- Using System.Timeout.timeout.
+* Using System.Timeout.timeout.
 
 ## 0.1.6
 
-- Fixing the race condition of `timeout`.
+* Fixing the race condition of `timeout`.
 
 ## 0.1.5
 
-- Catching up "tls" v1.9.0.
-- Fixing the timing to set resumption tokens.
+* Catching up "tls" v1.9.0.
+* Fixing the timing to set resumption tokens.
 
 ## 0.1.4
 
-- Fixing the race of socket closure.
+* Fixing the race of socket closure.
 
 ## 0.1.3
 
-- Supporting `tls` v1.8.0.
+* Supporting `tls` v1.8.0.
 
 ## 0.1.2
 
-- Using "crypton" instead of "cryptonite".
+* Using "crypton" instead of "cryptonite".
 
 ## 0.1.1
 
-- Fix recvStream hanging
+* Fix recvStream hanging
   [#54](https://github.com/kazu-yamamoto/quic/pull/54)
-- Don't use the fusion crypto on Intel if the CPU does not
+* Don't use the fusion crypto on Intel if the CPU does not
   provides enough features.
-- Add cabal flag for fusion support
+* Add cabal flag for fusion support
   [#53](https://github.com/kazu-yamamoto/quic/pull/53)
 
 ## 0.1.0
 
-- Supporting QUICv2 and version negotiation.
-- Supporting CPUs other than Intel.
-- Supporting Windows.
-- Using the network-udp package
+* Supporting QUICv2 and version negotiation.
+* Supporting CPUs other than Intel.
+* Supporting Windows.
+* Using the network-udp package
 
 ## 0.0.1
 
-- Making Haskell servers friendly with Chrome
+* Making Haskell servers friendly with Chrome
   [#20](https://github.com/kazu-yamamoto/quic/pull/20)
 
 ## 0.0.0
 
-- Initial version.
+* Initial version.
diff --git a/Network/QUIC.hs b/Network/QUIC.hs
--- a/Network/QUIC.hs
+++ b/Network/QUIC.hs
@@ -36,23 +36,12 @@
     sendStreamMany,
 
     -- * Information
-    ConnectionInfo,
+    ConnectionInfo (..),
     getConnectionInfo,
-    version,
-    cipher,
-    alpn,
-    handshakeMode,
-    retry,
-    localSockAddr,
-    remoteSockAddr,
-    localCID,
-    remoteCID,
 
     -- * Statistics
-    ConnectionStats,
+    ConnectionStats (..),
     getConnectionStats,
-    txBytes,
-    rxBytes,
 
     -- * Synchronization
     wait0RTTReady,
diff --git a/Network/QUIC/Config.hs b/Network/QUIC/Config.hs
--- a/Network/QUIC/Config.hs
+++ b/Network/QUIC/Config.hs
@@ -141,16 +141,6 @@
     , scDebugLog :: Maybe FilePath
     , scTicketLifetime :: Int
     -- ^ A lifetime (in seconds) for TLS session ticket and QUIC token.
-    , scWildcardSocketonly :: Bool
-    -- ^ If 'True', only wild sockets are used.
-    -- Packets are dispatched in Haskell code according to
-    -- destination connection ID. This is an overhead however
-    -- clinets can make QUIC connections even if intermediate NATs
-    -- rebind UDP ports frequently.
-    -- Otherwise, connected sockets are also used.
-    -- This means that packets are dispatched by a kernel.
-    -- But unfortunately, clients cannot make QUIC connections
-    -- if intermediate NATs rebind UDP ports frequently.
     }
 
 -- | The default value for server configuration.
@@ -174,5 +164,4 @@
         , scSessionManager = noSessionManager
         , scDebugLog = Nothing
         , scTicketLifetime = 7200
-        , scWildcardSocketonly = True
         }
diff --git a/quic.cabal b/quic.cabal
--- a/quic.cabal
+++ b/quic.cabal
@@ -1,6 +1,6 @@
 cabal-version:      >=1.10
 name:               quic
-version:            0.1.23
+version:            0.1.24
 license:            BSD3
 license-file:       LICENSE
 maintainer:         kazu@iij.ad.jp
diff --git a/util/quic-client.hs b/util/quic-client.hs
--- a/util/quic-client.hs
+++ b/util/quic-client.hs
@@ -398,11 +398,11 @@
             }
 
 printThroughput :: UnixTime -> UnixTime -> ConnectionStats -> IO ()
-printThroughput t1 t2 stats =
+printThroughput t1 t2 ConnectionStats{..} =
     printf
         "Throughput %.2f Mbps (%d bytes in %d msecs)\n"
         bytesPerSeconds
-        (rxBytes stats)
+        rxBytes
         millisecs
   where
     UnixDiffTime (CTime s) u = t2 `diffUnixTime` t1
@@ -410,7 +410,7 @@
     millisecs = fromIntegral s * 1000 + fromIntegral u `div` 1000
     bytesPerSeconds :: Double
     bytesPerSeconds =
-        fromIntegral (rxBytes stats)
+        fromIntegral rxBytes
             * (1000 :: Double)
             * 8
             / fromIntegral millisecs
