diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -21,7 +21,7 @@
 myMiddleware :: MiddlewareT (ReaderT Env m)
 
 contentTypeRoutes :: Monad m =>
-                     FileExtListenerT (Status -> ResponseHeaders -> Response) m ()
+                     FileExtListenerT urlbase (Status -> ResponseHeaders -> Response) m ()
 contentTypeRoutes = do
   blaze myBlazeResponse
   cassius myCassiusResponse
diff --git a/src/Network/Wai/Middleware/ContentType.hs b/src/Network/Wai/Middleware/ContentType.hs
--- a/src/Network/Wai/Middleware/ContentType.hs
+++ b/src/Network/Wai/Middleware/ContentType.hs
@@ -74,7 +74,7 @@
 
 fileExtsToMiddleware :: MonadBaseControl IO m stM
                      => Extractable stM
-                     => FileExtListenerT m a
+                     => FileExtListenerT urlbase m a
                      -> MiddlewareT m
 fileExtsToMiddleware xs app req respond =
   liftBaseWith $ \runInBase -> withStdoutLogger $ \aplogger -> fmap runSingleton $ runInBase $ do
diff --git a/src/Network/Wai/Middleware/ContentType/Blaze.hs b/src/Network/Wai/Middleware/ContentType/Blaze.hs
--- a/src/Network/Wai/Middleware/ContentType/Blaze.hs
+++ b/src/Network/Wai/Middleware/ContentType/Blaze.hs
@@ -17,7 +17,7 @@
 
 blaze :: Monad m =>
          H.Html
-      -> FileExtListenerT m ()
+      -> FileExtListenerT urlbase m ()
 blaze i =
   tell' $ HM.singleton Html $
     ResponseVia
diff --git a/src/Network/Wai/Middleware/ContentType/ByteString.hs b/src/Network/Wai/Middleware/ContentType/ByteString.hs
--- a/src/Network/Wai/Middleware/ContentType/ByteString.hs
+++ b/src/Network/Wai/Middleware/ContentType/ByteString.hs
@@ -11,13 +11,12 @@
 
 -- * Lifted Combinators
 
-bytestring :: MonadIO m =>
+bytestring :: Monad m =>
               FileExt
            -> LBS.ByteString
-           -> FileExtListenerT m ()
+           -> FileExtListenerT urlbase m ()
 bytestring fe i = do
   aplogger <- getLogger
-  liftIO $ aplogger status200 (Just $ fromIntegral $ LBS.length i)
   tell' $ HM.singleton fe $
     ResponseVia
       i
diff --git a/src/Network/Wai/Middleware/ContentType/Cassius.hs b/src/Network/Wai/Middleware/ContentType/Cassius.hs
--- a/src/Network/Wai/Middleware/ContentType/Cassius.hs
+++ b/src/Network/Wai/Middleware/ContentType/Cassius.hs
@@ -18,7 +18,7 @@
 
 cassius :: Monad m =>
            Css
-        -> FileExtListenerT m ()
+        -> FileExtListenerT urlbase m ()
 cassius i =
   tell' $ HM.singleton CT.Css $
     ResponseVia
diff --git a/src/Network/Wai/Middleware/ContentType/Clay.hs b/src/Network/Wai/Middleware/ContentType/Clay.hs
--- a/src/Network/Wai/Middleware/ContentType/Clay.hs
+++ b/src/Network/Wai/Middleware/ContentType/Clay.hs
@@ -19,7 +19,7 @@
 
 clay :: Monad m =>
         Config -> [App] -> Css
-     -> FileExtListenerT m ()
+     -> FileExtListenerT urlbase m ()
 clay c as i =
   tell' $ HM.singleton CT.Css $
     ResponseVia
diff --git a/src/Network/Wai/Middleware/ContentType/Json.hs b/src/Network/Wai/Middleware/ContentType/Json.hs
--- a/src/Network/Wai/Middleware/ContentType/Json.hs
+++ b/src/Network/Wai/Middleware/ContentType/Json.hs
@@ -17,9 +17,9 @@
 -- * Lifted Combinators
 
 json :: ( A.ToJSON j
-        , MonadIO m
+        , Monad m
         ) => j
-          -> FileExtListenerT m ()
+          -> FileExtListenerT urlbase m ()
 json =
   overFileExts [Json] (mapHeaders (("Content-Type","application/json"):))
     . bytestring Json . A.encode
diff --git a/src/Network/Wai/Middleware/ContentType/Julius.hs b/src/Network/Wai/Middleware/ContentType/Julius.hs
--- a/src/Network/Wai/Middleware/ContentType/Julius.hs
+++ b/src/Network/Wai/Middleware/ContentType/Julius.hs
@@ -18,7 +18,7 @@
 
 julius :: Monad m =>
           Javascript
-       -> FileExtListenerT m ()
+       -> FileExtListenerT urlbase m ()
 julius i =
   tell' $ HM.singleton CT.JavaScript $
     ResponseVia
diff --git a/src/Network/Wai/Middleware/ContentType/Lucid.hs b/src/Network/Wai/Middleware/ContentType/Lucid.hs
--- a/src/Network/Wai/Middleware/ContentType/Lucid.hs
+++ b/src/Network/Wai/Middleware/ContentType/Lucid.hs
@@ -17,7 +17,7 @@
 
 lucid :: Monad m =>
          L.HtmlT m ()
-      -> FileExtListenerT m ()
+      -> FileExtListenerT urlbase m ()
 lucid i = do
   f <- lift (lucidOnly i)
   tell' $ HM.singleton Html $
diff --git a/src/Network/Wai/Middleware/ContentType/Lucius.hs b/src/Network/Wai/Middleware/ContentType/Lucius.hs
--- a/src/Network/Wai/Middleware/ContentType/Lucius.hs
+++ b/src/Network/Wai/Middleware/ContentType/Lucius.hs
@@ -18,7 +18,7 @@
 
 lucius :: Monad m =>
           Css
-       -> FileExtListenerT m ()
+       -> FileExtListenerT urlbase m ()
 lucius i =
   tell' $ HM.singleton CT.Css $
     ResponseVia
diff --git a/src/Network/Wai/Middleware/ContentType/Text.hs b/src/Network/Wai/Middleware/ContentType/Text.hs
--- a/src/Network/Wai/Middleware/ContentType/Text.hs
+++ b/src/Network/Wai/Middleware/ContentType/Text.hs
@@ -17,7 +17,7 @@
 
 text :: Monad m =>
         LT.Text
-     -> FileExtListenerT m ()
+     -> FileExtListenerT urlbase m ()
 text i =
   tell' $ HM.singleton Text $
     ResponseVia
diff --git a/src/Network/Wai/Middleware/ContentType/Types.hs b/src/Network/Wai/Middleware/ContentType/Types.hs
--- a/src/Network/Wai/Middleware/ContentType/Types.hs
+++ b/src/Network/Wai/Middleware/ContentType/Types.hs
@@ -151,8 +151,8 @@
 overFileExts :: Monad m =>
                 [FileExt]
              -> (ResponseVia -> ResponseVia)
-             -> FileExtListenerT m a
-             -> FileExtListenerT m a
+             -> FileExtListenerT urlbase m a
+             -> FileExtListenerT urlbase m a
 overFileExts fs f (FileExtListenerT (ReaderT xs)) = do
   aplogger <- getLogger
   i <- get
@@ -166,24 +166,24 @@
 -- | The monad for our DSL - when using the combinators, our result will be this
 --   type:
 --
---   > myListener :: FileExtListenerT (MiddlewareT m) m ()
+--   > myListener :: FileExtListenerT base (MiddlewareT m) m ()
 --   > myListener = do
 --   >   text "Text!"
 --   >   json ("Json!" :: T.Text)
-newtype FileExtListenerT m a = FileExtListenerT
+newtype FileExtListenerT urlbase m a = FileExtListenerT
   { runFileExtListenerT :: ReaderT (Status -> Maybe Integer -> IO ()) (StateT FileExtMap m) a
   } deriving ( Functor, Applicative, Alternative, Monad, MonadFix, MonadPlus, MonadIO
              , MonadWriter w, MonadState FileExtMap
              , MonadCont, MonadError e, MonadBase b, MonadThrow, MonadCatch
-             , MonadMask, MonadLogger, MonadUrl
+             , MonadMask, MonadLogger, MonadUrl urlbase
              )
 
-getLogger :: Monad m => FileExtListenerT m (Status -> Maybe Integer -> IO ())
+getLogger :: Monad m => FileExtListenerT urlbase m (Status -> Maybe Integer -> IO ())
 getLogger = FileExtListenerT (ReaderT pure)
 
-instance Aligned.MonadTransControl FileExtListenerT ((,) FileExtMap) where
+instance Aligned.MonadTransControl (FileExtListenerT urlbase) ((,) FileExtMap) where
   liftWith client = FileExtListenerT $ ReaderT $ \env -> StateT $ \s ->
-    let run :: forall m a. Monad m => FileExtListenerT m a -> m (FileExtMap, a)
+    let run :: forall urlbase m a. Monad m => FileExtListenerT urlbase m a -> m (FileExtMap, a)
         run (FileExtListenerT (ReaderT f)) =
           let (StateT g) = f env
           in  do (x, s') <- g s
@@ -195,40 +195,41 @@
     pure (x,s')
 
 instance ( Aligned.MonadBaseControl b m stM
-         ) => Aligned.MonadBaseControl b (FileExtListenerT m) (Compose stM ((,) FileExtMap)) where
+         ) => Aligned.MonadBaseControl b
+                (FileExtListenerT urlbase m) (Compose stM ((,) FileExtMap)) where
   liftBaseWith = Aligned.defaultLiftBaseWith
   restoreM = Aligned.defaultRestoreM
 
-instance MonadTrans FileExtListenerT where
+instance MonadTrans (FileExtListenerT urlbase) where
   lift m = FileExtListenerT (ReaderT (\_ -> lift m))
 
-instance MonadReader r m => MonadReader r (FileExtListenerT m) where
+instance MonadReader r m => MonadReader r (FileExtListenerT urlbase m) where
   ask = FileExtListenerT (ReaderT (const ask))
   local f (FileExtListenerT (ReaderT g)) = FileExtListenerT $ ReaderT $ \x -> local f (g x)
 
-instance Monad m => Semigroup (FileExtListenerT m ()) where
+instance Monad m => Semigroup (FileExtListenerT urlbase m ()) where
   x <> y = x >> y
 
-instance Monad m => Monoid (FileExtListenerT m ()) where
+instance Monad m => Monoid (FileExtListenerT urlbase m ()) where
   mempty = FileExtListenerT (put mempty)
 
-deriving instance (MonadResource m, MonadBase IO m) => MonadResource (FileExtListenerT m)
+deriving instance (MonadResource m, MonadBase IO m) => MonadResource (FileExtListenerT urlbase m)
 
-instance MonadTransControl FileExtListenerT where
-  type StT FileExtListenerT a = StT (StateT FileExtMap)
+instance MonadTransControl (FileExtListenerT urlbase) where
+  type StT (FileExtListenerT urlbase) a = StT (StateT FileExtMap)
         (StT (ReaderT (Status -> Maybe Integer -> IO ())) a)
   liftWith f = FileExtListenerT $ ReaderT $ \aplogger -> liftWith $ \runInBase ->
     f (\(FileExtListenerT (ReaderT xs)) -> runInBase (xs aplogger))
   restoreT x = FileExtListenerT $ ReaderT $ \_ -> restoreT x
 
 instance ( MonadBaseControl b m
-         ) => MonadBaseControl b (FileExtListenerT m) where
-  type StM (FileExtListenerT m) a = ComposeSt FileExtListenerT m a
+         ) => MonadBaseControl b (FileExtListenerT urlbase m) where
+  type StM (FileExtListenerT urlbase m) a = ComposeSt (FileExtListenerT urlbase) m a
   liftBaseWith = defaultLiftBaseWith
   restoreM     = defaultRestoreM
 
 execFileExtListenerT :: Monad m
-                     => FileExtListenerT m a
+                     => FileExtListenerT urlbase m a
                      -> Maybe (Status -> Maybe Integer -> IO ())
                      -> m FileExtMap
 execFileExtListenerT xs mL =
@@ -239,8 +240,8 @@
 
 mapFileExtMap :: ( Monad m
                  ) => (FileExtMap -> FileExtMap)
-                   -> FileExtListenerT m a
-                   -> FileExtListenerT m a
+                   -> FileExtListenerT urlbase m a
+                   -> FileExtListenerT urlbase m a
 mapFileExtMap f (FileExtListenerT xs) = do
   aplogger <- getLogger
   m      <- get
@@ -297,7 +298,7 @@
 --   > myApp = do
 --   >   text "foo"
 --   >   invalidEncoding myErrorHandler -- handles all except text/plain
-invalidEncoding :: Monad m => ResponseVia -> FileExtListenerT m ()
+invalidEncoding :: Monad m => ResponseVia -> FileExtListenerT urlbase m ()
 invalidEncoding r = mapM_ (\t -> tell' (HM.singleton t r)) [Html,Css,JavaScript,Json,Text,Markdown]
 
 {-# INLINEABLE invalidEncoding #-}
diff --git a/wai-middleware-content-type.cabal b/wai-middleware-content-type.cabal
--- a/wai-middleware-content-type.cabal
+++ b/wai-middleware-content-type.cabal
@@ -1,21 +1,21 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.31.0.
+-- This file has been generated from package.yaml by hpack version 0.35.2.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 74380c70941c771873442f9110c7bc835e54ac9846659dc4fc1293931846853c
+-- hash: a42d121b620f40447b4d6fef1cbd8eb612b28a5d3aafa4254bbb1147719ce1ec
 
 name:           wai-middleware-content-type
-version:        0.6.2
+version:        0.7.0
 synopsis:       Route to different middlewares based on the incoming Accept header.
-description:    Please see the README on Github at <https://git.localcooking.com/tooling/wai-middleware-content-type#readme>
+description:    Please see the README on Github at <https://github.com/athanclark/wai-middleware-content-type#readme>
 category:       Web
 homepage:       https://github.com/athanclark/wai-middleware-content-type#readme
 bug-reports:    https://github.com/athanclark/wai-middleware-content-type/issues
 author:         Athan Clark
-maintainer:     athan.clark@localcooking.com
-copyright:      2018 Athan Clark
+maintainer:     athan.clark@gmail.com
+copyright:      Copyright (c) 2023 Athan Clark
 license:        BSD3
 license-file:   LICENSE
 build-type:     Simple
@@ -59,7 +59,7 @@
     , lucid
     , mmorph
     , monad-control
-    , monad-control-aligned
+    , monad-control-aligned >=0.0.2
     , monad-logger
     , mtl
     , resourcet
@@ -68,7 +68,7 @@
     , transformers
     , transformers-base
     , unordered-containers
-    , urlpath >=9.0.1
+    , urlpath >=11.0.0
     , wai >=3.2
     , wai-logger
     , wai-transformers >=0.1.0
@@ -100,7 +100,7 @@
     , lucid
     , mmorph
     , monad-control
-    , monad-control-aligned
+    , monad-control-aligned >=0.0.2
     , monad-logger
     , mtl
     , resourcet
