diff --git a/Changelog.md b/Changelog.md
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,5 +1,12 @@
 # Changelog mailpool
 
+# Release 2.3.0 2024.08.12 
++ set default to starttls
+  + apparantly mailgun requires it by default now
+  + this change is what makes it a minor release
++ upgrade to new data-pool
+
+
 # Release 2.2.3 2020.12.03 
 + No I need to fix haskell net
 
diff --git a/mail-pool.cabal b/mail-pool.cabal
--- a/mail-pool.cabal
+++ b/mail-pool.cabal
@@ -1,13 +1,7 @@
-cabal-version: 1.12
-
--- This file has been generated from package.yaml by hpack version 0.31.1.
---
--- see: https://github.com/sol/hpack
---
--- hash: f2f85cd494ec1e2df7247b76c890d08c48435918d7d88f2bc0d928cd0f09596d
+cabal-version:      3.0
 
 name:           mail-pool
-version:        2.2.3
+version:        2.3.0
 synopsis:       Preconfigured email connection pool on top of smtp.
 description:    Email helper functions with some sane defaults such as a resource pool and cli support
 category:       Email
@@ -22,23 +16,63 @@
 extra-source-files:
     Readme.md
     LICENSE
+
+extra-doc-files:
     Changelog.md
 
 source-repository head
   type: git
   location: https://github.com/jappeace/email-pool
 
+common common-options
+  default-extensions: 
+      EmptyCase
+      FlexibleContexts
+      FlexibleInstances
+      InstanceSigs
+      MultiParamTypeClasses
+      LambdaCase
+      MultiWayIf
+      NamedFieldPuns
+      TupleSections
+      DeriveFoldable
+      DeriveFunctor
+      DeriveGeneric
+      DeriveLift
+      DeriveTraversable
+      DerivingStrategies
+      GeneralizedNewtypeDeriving
+      StandaloneDeriving
+      OverloadedStrings
+      TypeApplications
+      NumericUnderscores
+
+  ghc-options:
+    -O2 -Wall -Wincomplete-uni-patterns
+    -Wincomplete-record-updates -Widentities -Wredundant-constraints
+    -Wcpp-undef -fwarn-tabs -Wpartial-fields
+    -fdefer-diagnostics -Wunused-packages
+    -fenable-th-splice-warnings
+    -fno-omit-yields
+    -threaded
+
+  build-depends:
+      base >=4.9.1.0 && <4.21.0
+
+  default-language: Haskell2010
+
 library
+  import: common-options
   exposed-modules:
       Network.Mail.Pool
   other-modules:
       Paths_mail_pool
+  autogen-modules:
+      Paths_mail_pool
   hs-source-dirs:
       src
-  default-extensions: EmptyCase FlexibleContexts FlexibleInstances InstanceSigs MultiParamTypeClasses LambdaCase MultiWayIf NamedFieldPuns TupleSections DeriveFoldable DeriveFunctor DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies GeneralizedNewtypeDeriving StandaloneDeriving OverloadedStrings TypeApplications
-  ghc-options: -Wall -Wcompat -Wincomplete-uni-patterns -Wredundant-constraints -Wincomplete-record-updates -Widentities
   build-depends:
-      HaskellNet >=0.5.1
+      HaskellNet >=0.6.0 && < 1.0
     , HaskellNet-SSL >=0.3.4.1
     , aeson >=1.4
     , base >=4.7 && <5
@@ -46,28 +80,20 @@
     , mime-mail >=0.4.14
     , network >=2.8.0.0
     , optparse-applicative >=0.14.3.0
-    , resource-pool >=0.2.3.2
-    , time >=1.8.0.2
+    , resource-pool >=0.4.0.0 && < 1.0
   default-language: Haskell2010
 
 executable exe
+  import: common-options
   main-is: mail.hs
   other-modules:
       Paths_mail_pool
+  autogen-modules:
+      Paths_mail_pool
   hs-source-dirs:
       app
-  default-extensions: EmptyCase FlexibleContexts FlexibleInstances InstanceSigs MultiParamTypeClasses LambdaCase MultiWayIf NamedFieldPuns TupleSections DeriveFoldable DeriveFunctor DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies GeneralizedNewtypeDeriving StandaloneDeriving OverloadedStrings TypeApplications
-  ghc-options: -Wall -Wcompat -Wincomplete-uni-patterns -Wredundant-constraints -Wincomplete-record-updates -Widentities -threaded -rtsopts -with-rtsopts=-N
   build-depends:
-      HaskellNet >=0.5.1
-    , HaskellNet-SSL >=0.3.4.1
-    , aeson >=1.4
-    , base >=4.7 && <5
-    , mail-pool
-    , microlens >=0.4.10
+      mail-pool
     , mime-mail >=0.4.14
-    , network >=2.8.0.0
     , optparse-applicative >=0.14.3.0
-    , resource-pool >=0.2.3.2
-    , time >=1.8.0.2
   default-language: Haskell2010
diff --git a/src/Network/Mail/Pool.hs b/src/Network/Mail/Pool.hs
--- a/src/Network/Mail/Pool.hs
+++ b/src/Network/Mail/Pool.hs
@@ -16,12 +16,12 @@
   , openTls
   , openPlain
   , openTls'
+  , createPoolConfig
   -- ** optparse applicative
   , emailOptions
   -- ** lenses
   , poolCred
   , poolConnf
-  , poolStripes
   , poolUnused
   , poolStripeMax
   , smtpHost
@@ -38,7 +38,6 @@
 import           Control.Monad.IO.Class
 import           Data.Aeson
 import           Data.Pool                   as X
-import           Data.Time                   (NominalDiffTime)
 import           Lens.Micro
 import           Network.HaskellNet.SMTP     as X
 import           Network.HaskellNet.SMTP.SSL as X
@@ -83,10 +82,8 @@
     _poolCred      :: SmtpCred
    -- | allows overriding of the opening function, for example 'openPlain' or 'openTls'
   , _poolConnf     :: SmtpCred -> IO SMTPConnection
-   -- | stripes, see docs: https://hackage.haskell.org/package/resource-pool-0.2.3.2/docs/Data-Pool.html
-  , _poolStripes   :: Int
    -- | specify how long connections are kept open.
-  , _poolUnused    :: NominalDiffTime
+  , _poolUnused    :: Double
    -- | how many connections per stripe.
   , _poolStripeMax :: Int
   }
@@ -95,9 +92,7 @@
 poolCred      = lens _poolCred (\a b -> a{_poolCred=b})
 poolConnf     :: Lens' PoolSettings (SmtpCred -> IO SMTPConnection)
 poolConnf      = lens _poolConnf (\a b -> a{_poolConnf=b})
-poolStripes   :: Lens' PoolSettings Int
-poolStripes      = lens _poolStripes (\a b -> a{_poolStripes=b})
-poolUnused    :: Lens' PoolSettings NominalDiffTime
+poolUnused    :: Lens' PoolSettings Double
 poolUnused      = lens _poolUnused (\a b -> a{_poolUnused=b})
 poolStripeMax :: Lens' PoolSettings Int
 poolStripeMax      = lens _poolStripeMax (\a b -> a{_poolStripeMax=b})
@@ -106,8 +101,7 @@
 defSettings :: SmtpCred -> PoolSettings
 defSettings cred = PoolSettings
   { _poolCred = cred
-  , _poolConnf = openPlain
-  , _poolStripes = 1
+  , _poolConnf = openTls
   , _poolUnused = 60
   , _poolStripeMax = 5
   }
@@ -126,17 +120,21 @@
 
 -- | Construct a connection pool from settings.
 smtpPool :: PoolSettings -> IO (Pool SMTPConnection)
-smtpPool smtp =
-    createPool
+smtpPool =
+  newPool . createPoolConfig
+
+-- | allows manipulation of the underlying resourcepool config
+createPoolConfig :: PoolSettings -> PoolConfig SMTPConnection
+createPoolConfig smtp =
+    defaultPoolConfig
       (do
         conn <- smtp ^. poolConnf $ smtp ^. poolCred
         authorize conn (smtp ^. poolCred)
         pure conn
       )
       closeSMTP
-      (smtp ^. poolStripes)
       (smtp ^. poolUnused)
-      5
+      (smtp ^. poolStripeMax )
 
 handleAny :: (SomeException -> IO a) -> IO a -> IO a
 handleAny = handle
@@ -181,4 +179,4 @@
 
 -- | Send a 'Mail' with help of a connection pool.
 sendEmail :: MonadIO m => Pool SMTPConnection -> Mail -> m ()
-sendEmail pool = liftIO . withResource pool . sendMimeMail2
+sendEmail pool = liftIO . withResource pool . sendMail
