diff --git a/arbor-monad-counter.cabal b/arbor-monad-counter.cabal
--- a/arbor-monad-counter.cabal
+++ b/arbor-monad-counter.cabal
@@ -1,72 +1,83 @@
--- This file has been generated from package.yaml by hpack version 0.18.1.
---
--- see: https://github.com/sol/hpack
-
-name:           arbor-monad-counter
-version:        2.0.1
-description:    Please see the README on Github at <https://github.com/arbor/arbor-monad-counter#readme>
-category:       Services
-homepage:       https://github.com/arbor/arbor-monad-counter#readme
-bug-reports:    https://github.com/arbor/arbor-monad-counter/issues
-author:         Arbor Networks
-maintainer:     mayhem@arbor.net
-copyright:      Arbor Networks
-license:        MIT
-license-file:   LICENSE
-build-type:     Simple
-cabal-version:  >= 1.10
+cabal-version: 2.2
 
-extra-source-files:
-    ChangeLog.md
-    README.md
+name:                   arbor-monad-counter
+version:                2.0.2
+description:            Please see the README on Github at <https://github.com/arbor/arbor-monad-counter#readme>
+category:               Services
+homepage:               https://github.com/arbor/arbor-monad-counter#readme
+bug-reports:            https://github.com/arbor/arbor-monad-counter/issues
+author:                 Arbor Networks
+maintainer:             mayhem@arbor.net
+copyright:              Arbor Networks
+license:                MIT
+license-file:           LICENSE
+tested-with:            GHC == 8.8.1, GHC == 8.6.5, GHC == 8.4.4, GHC == 8.2.2
+build-type:             Simple
+Synopsis:               Counter library for submitting metrics to a backend such as datadog
+extra-source-files:     ChangeLog.md
+                        README.md
 
 source-repository head
   type: git
   location: https://github.com/arbor/arbor-monad-counter
 
+common base                 { build-depends: base                 >= 4          && < 5      }
+
+common containers           { build-depends: containers           >= 0.5.10     && < 0.7    }
+common generic-lens         { build-depends: generic-lens         >= 1.2.0.1    && < 1.3    }
+common hedgehog             { build-depends: hedgehog             >= 0.7        && < 1.1    }
+common hspec                { build-depends: hspec                >= 2.6        && < 3      }
+common hw-hspec-hedgehog    { build-depends: hw-hspec-hedgehog    >= 0.1.0.5    && < 0.2    }
+common lens                 { build-depends: lens                 >= 4.16       && < 5      }
+common mtl                  { build-depends: mtl                  >= 2.2.2      && < 2.3    }
+common resourcet            { build-depends: resourcet            >= 1.2.1      && < 1.3    }
+common stm                  { build-depends: stm                  >= 2.4.0      && < 2.6    }
+common transformers         { build-depends: transformers         >= 0.5.2      && < 0.6    }
+
+common config
+  default-language:     Haskell2010
+
+common arbor-monad-counter
+  build-depends:        arbor-monad-counter
+
 library
-  hs-source-dirs:
-      src
-  default-extensions: BangPatterns FlexibleContexts FlexibleInstances GeneralizedNewtypeDeriving MultiParamTypeClasses OverloadedStrings TupleSections
-  ghc-options: -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints
-  build-depends:
-      base >=4.7 && <5
-    , containers
-    , generic-lens
-    , lens
-    , mtl
-    , stm
-    , resourcet
-    , transformers
-  exposed-modules:
-      Arbor.Monad.Counter
-      Arbor.Monad.Counter.Type
-  other-modules:
-      Paths_arbor_monad_counter
-  default-language: Haskell2010
+  import:               base, config
+                      , containers
+                      , generic-lens
+                      , lens
+                      , mtl
+                      , resourcet
+                      , stm
+                      , transformers
+  exposed-modules:      Arbor.Monad.Counter
+                        Arbor.Monad.Counter.Type
+  other-modules:        Paths_arbor_monad_counter
+  autogen-modules:      Paths_arbor_monad_counter
+  hs-source-dirs:       src
+  default-extensions:   BangPatterns FlexibleContexts FlexibleInstances GeneralizedNewtypeDeriving MultiParamTypeClasses OverloadedStrings TupleSections
+  ghc-options:          -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints
 
 test-suite arbor-monad-counter-test
-  type: exitcode-stdio-1.0
-  main-is: Spec.hs
-  hs-source-dirs:
-      test
-      src
-  default-extensions: BangPatterns FlexibleContexts FlexibleInstances GeneralizedNewtypeDeriving MultiParamTypeClasses OverloadedStrings TupleSections
-  ghc-options: -threaded -rtsopts -with-rtsopts=-N
-  build-depends:
-      base >=4.7 && <5
-    , containers
-    , generic-lens
-    , lens
-    , mtl
-    , stm
-    , resourcet
-    , transformers
-    , arbor-monad-counter
-    , hspec
-    , hedgehog
-    , hw-hspec-hedgehog
-  other-modules:
-      Arbor.Monad.Counter
-      Arbor.Monad.Counter.Type
-  default-language: Haskell2010
+  import:               base, config
+                      , arbor-monad-counter
+                      , containers
+                      , generic-lens
+                      , hedgehog
+                      , hspec
+                      , hw-hspec-hedgehog
+                      , lens
+                      , mtl
+                      , resourcet
+                      , stm
+                      , transformers
+  type:                 exitcode-stdio-1.0
+  main-is:              Spec.hs
+  build-tool-depends:   hspec-discover:hspec-discover
+  other-modules:        Arbor.Monad.Counter
+                        Arbor.Monad.Counter.Type
+                        Paths_arbor_monad_counter
+  autogen-modules:      Paths_arbor_monad_counter
+  hs-source-dirs:       test
+                        src
+  default-extensions:   BangPatterns FlexibleContexts FlexibleInstances GeneralizedNewtypeDeriving MultiParamTypeClasses OverloadedStrings TupleSections
+  ghc-options:          -threaded -rtsopts -with-rtsopts=-N
