diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,12 @@
 # ChangeLog
 
+## 0.2.11
+
+* `ConnectionIsClosed` now takes reason.
+* `ConnectionClose NoError` is treated as an error if level is not RTT1.
+* Defining `ccServerNameOverride`.
+* Removing data-default.
+
 ## 0.2.10
 
 * Fix a bug of ACK on retransmission.
diff --git a/Network/QUIC/Client.hs b/Network/QUIC/Client.hs
--- a/Network/QUIC/Client.hs
+++ b/Network/QUIC/Client.hs
@@ -7,6 +7,7 @@
     ClientConfig,
     defaultClientConfig,
     ccServerName,
+    ccServerNameOverride,
     ccPortName,
     ccALPN,
     ccUse0RTT,
diff --git a/Network/QUIC/Config.hs b/Network/QUIC/Config.hs
--- a/Network/QUIC/Config.hs
+++ b/Network/QUIC/Config.hs
@@ -3,7 +3,6 @@
 
 module Network.QUIC.Config where
 
-import Data.Default
 import Data.IP
 import Network.Socket
 import Network.TLS hiding (
@@ -104,6 +103,8 @@
     -- called when network events are observed.
     --
     -- Default: 'False'
+    , ccServerNameOverride :: Maybe HostName
+    -- ^ Used to specify SNI for TLS intead of `ccServerName`.
     }
 
 -- | The default value for client configuration.
@@ -119,7 +120,7 @@
         , ccQLog = Nothing
         , ccCredentials = mempty
         , ccHooks = defaultHooks
-        , ccTlsHooks = def
+        , ccTlsHooks = defaultClientHooks
         , ccUse0RTT = False
         , -- client original
           ccServerName = "127.0.0.1"
@@ -131,6 +132,7 @@
         , ccDebugLog = False
         , ccSockConnected = False
         , ccWatchDog = False
+        , ccServerNameOverride = Nothing
         }
 
 ----------------------------------------------------------------
@@ -178,7 +180,7 @@
         , scQLog = Nothing
         , scCredentials = mempty
         , scHooks = defaultHooks
-        , scTlsHooks = def
+        , scTlsHooks = defaultServerHooks
         , scUse0RTT = False
         , -- server original
           scAddresses = [("0.0.0.0", 4433), ("::", 4433)]
diff --git a/Network/QUIC/Receiver.hs b/Network/QUIC/Receiver.hs
--- a/Network/QUIC/Receiver.hs
+++ b/Network/QUIC/Receiver.hs
@@ -447,8 +447,8 @@
 processFrame conn RTT1Level (PathResponse dat) =
     -- RTT0Level falls intentionally
     checkResponse conn dat
-processFrame conn _lvl (ConnectionClose NoError _ftyp _reason) =
-    when (isServer conn) $ E.throwIO ConnectionIsClosed
+processFrame conn lvl (ConnectionClose NoError _ftyp reason) =
+    when (isServer conn || lvl /= RTT1Level) $ E.throwIO $ ConnectionIsClosed reason
 processFrame _conn _lvl (ConnectionClose err _ftyp reason) = do
     let quicexc = TransportErrorIsReceived err reason
     E.throwIO quicexc
diff --git a/Network/QUIC/TLS.hs b/Network/QUIC/TLS.hs
--- a/Network/QUIC/TLS.hs
+++ b/Network/QUIC/TLS.hs
@@ -6,13 +6,12 @@
     serverHandshaker,
 ) where
 
-import Control.Applicative ((<|>))
-import Data.Default
 import Network.TLS hiding (Version, defaultSupported)
 import Network.TLS.QUIC
 import System.X509
 
 import Network.QUIC.Config
+import Network.QUIC.Imports
 import Network.QUIC.Parameters
 import Network.QUIC.Types
 
@@ -31,8 +30,9 @@
     caStore <- if ccValidate then getSystemCertificateStore else return mempty
     tlsQUICClient (cparams caStore) callbacks
   where
+    sni = fromMaybe ccServerName ccServerNameOverride
     cparams caStore =
-        (defaultParamsClient ccServerName "")
+        (defaultParamsClient sni "")
             { clientShared = cshared caStore
             , clientHooks = hook
             , clientSupported = supported
@@ -45,8 +45,9 @@
     convExt = onTLSExtensionCreated ccHooks
     skipValidation = ValidationCache (\_ _ _ -> return ValidationCachePass) (\_ _ _ -> return ())
     cshared caStore =
-        def
-            { sharedValidationCache = if ccValidate then def else skipValidation
+        defaultShared
+            { sharedValidationCache =
+                if ccValidate then sharedValidationCache defaultShared else skipValidation
             , sharedCAStore = caStore
             , sharedHelloExtensions = convExt $ parametersToExtensionRaw ver params
             , sharedSessionManager = sessionManager establish
@@ -61,7 +62,7 @@
             , supportedGroups = ccGroups
             }
     debug =
-        def
+        defaultDebugParams
             { debugKeyLogger = ccKeyLog
             }
 
@@ -81,7 +82,7 @@
     tlsQUICServer sparams callbacks
   where
     sparams =
-        def
+        defaultParamsServer
             { serverShared = sshared
             , serverHooks = hook
             , serverSupported = supported
@@ -92,7 +93,7 @@
     convTP = onTransportParametersCreated scHooks
     convExt = onTLSExtensionCreated scHooks
     sshared =
-        def
+        defaultShared
             { sharedCredentials = scCredentials
             , sharedSessionManager = scSessionManager
             }
@@ -108,12 +109,12 @@
                 return $ exts ++ exts0'
             }
     supported =
-        def
+        defaultSupported
             { supportedVersions = [TLS13]
             , supportedCiphers = scCiphers
             , supportedGroups = scGroups
             }
     debug =
-        def
+        defaultDebugParams
             { debugKeyLogger = scKeyLog
             }
diff --git a/Network/QUIC/Types/Exception.hs b/Network/QUIC/Types/Exception.hs
--- a/Network/QUIC/Types/Exception.hs
+++ b/Network/QUIC/Types/Exception.hs
@@ -10,7 +10,7 @@
 
 -- | User level exceptions for QUIC.
 data QUICException
-    = ConnectionIsClosed -- NoError
+    = ConnectionIsClosed ReasonPhrase
     | TransportErrorIsReceived TransportError ReasonPhrase
     | TransportErrorIsSent TransportError ReasonPhrase
     | ApplicationProtocolErrorIsReceived ApplicationProtocolError ReasonPhrase
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.2.10
+version:            0.2.11
 license:            BSD3
 license-file:       LICENSE
 maintainer:         kazu@iij.ad.jp
@@ -138,7 +138,6 @@
         crypton >=0.34,
         crypton-x509 >=1.7.6 && <1.8,
         crypton-x509-system >=1.6.7 && <1.7,
-        data-default,
         fast-logger >=3.2.2 && <3.3,
         filepath,
         iproute >=1.7.12 && <1.8,
