diff --git a/avro-piper.cabal b/avro-piper.cabal
--- a/avro-piper.cabal
+++ b/avro-piper.cabal
@@ -1,7 +1,7 @@
 cabal-version: 2.4
 
 name:                   avro-piper
-version:                1.0.1
+version:                1.0.2
 synopsis:               Tool for decoding avro
 description:            Please see the README on Github at <https://github.com/haskell-works/avro-piper#readme>
 category:               Data
@@ -21,11 +21,35 @@
   type: git
   location: https://github.com/haskell-works/avro-piper
 
+common base                     { build-depends: base                   >= 4.7      && < 5      }
+
+common aeson                    { build-depends: aeson                  >= 1.4.6.0  && < 1.5    }
+common avro                     { build-depends: avro                   >= 0.4.5.4  && < 0.5    }
+common bytestring               { build-depends: bytestring             >= 0.10     && < 0.11   }
+common conduit                  { build-depends: conduit                >= 1.3.1.2  && < 1.4    }
+common conduit-combinators      { build-depends: conduit-combinators    >= 1.3.0    && < 1.4    }
+common conduit-extra            { build-depends: conduit-extra          >= 1.3.4    && < 1.4    }
+common hedgehog                 { build-depends: hedgehog               >= 1.0.1    && < 1.1    }
+common hspec                    { build-depends: hspec                  >= 2.7.1    && < 2.8    }
+common hw-hspec-hedgehog        { build-depends: hw-hspec-hedgehog      >= 0.1.0.9  && < 0.2    }
+common hw-kafka-avro            { build-depends: hw-kafka-avro          >= 4.0.1    && < 4.1    }
+common mtl                      { build-depends: mtl                    >= 2.2.2    && < 2.3    }
+common optparse-applicative     { build-depends: optparse-applicative   >= 0.15.1.0 && < 0.16   }
+common scientific               { build-depends: scientific             >= 0.3.6.2  && < 0.4    }
+common stringsearch             { build-depends: stringsearch           >= 0.3.6.6  && < 0.4    }
+common text                     { build-depends: text                   >= 1.2.3.1  && < 1.3    }
+common unordered-containers     { build-depends: unordered-containers   >= 0.2.10.0 && < 0.3    }
+
+common config
+  default-language:     Haskell2010
+
+common avro-piper
+  build-depends:        avro-piper
+
 library
-  hs-source-dirs:       src
-  build-depends:        aeson
+  import:               base, config
+                      , aeson
                       , avro
-                      , base >=4.7 && <5
                       , bytestring
                       , conduit
                       , conduit-combinators
@@ -37,21 +61,19 @@
                       , stringsearch
                       , text
                       , unordered-containers
+  hs-source-dirs:       src
   exposed-modules:      Conduit.Splitter
                         Error
                         Format
   other-modules:        Paths_avro_piper
   autogen-modules:      Paths_avro_piper
-  default-language:     Haskell2010
 
+
 executable avro-decode
-  main-is:              Main.hs
-  hs-source-dirs:       app
-  ghc-options:          -threaded -rtsopts -with-rtsopts=-N
-  build-depends:        aeson
+  import:               base, config
+                      , aeson
                       , avro
                       , avro-piper
-                      , base >=4.7 && <5
                       , bytestring
                       , conduit
                       , conduit-combinators
@@ -63,20 +85,17 @@
                       , stringsearch
                       , text
                       , unordered-containers
+  main-is:              Main.hs
+  hs-source-dirs:       app
+  ghc-options:          -threaded -rtsopts -with-rtsopts=-N
   other-modules:        Options
-                        Paths_avro_piper
-  autogen-modules:      Paths_avro_piper
-  default-language:     Haskell2010
 
+
 test-suite avro-piper-test
-  type:                 exitcode-stdio-1.0
-  main-is:              Spec.hs
-  hs-source-dirs:       test
-  ghc-options:          -threaded -rtsopts -with-rtsopts=-N
-  build-depends:        aeson
+  import:               base, config
+                      , aeson
                       , avro
                       , avro-piper
-                      , base >=4.7 && <5
                       , bytestring
                       , conduit
                       , conduit-combinators
@@ -91,7 +110,9 @@
                       , stringsearch
                       , text
                       , unordered-containers
+  type:                 exitcode-stdio-1.0
+  main-is:              Spec.hs
+  hs-source-dirs:       test
+  ghc-options:          -threaded -rtsopts -with-rtsopts=-N
   other-modules:        SplitterSpec
-                        Paths_avro_piper
-  autogen-modules:      Paths_avro_piper
-  default-language:     Haskell2010
+
