diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright Author name here (c) 2017
+Copyright John Ky (c) 2017-2018
 
 All rights reserved.
 
diff --git a/hw-hedgehog.cabal b/hw-hedgehog.cabal
--- a/hw-hedgehog.cabal
+++ b/hw-hedgehog.cabal
@@ -1,36 +1,51 @@
-name:                 hw-hedgehog
-version:              0.1.0.1
-synopsis:             Extra hedgehog functionality
-description:          Extra hedgehog functionality
-homepage:             https://github.com/githubuser/hw-hedgehog#readme
-license:              BSD3
-license-file:         LICENSE
-author:               Author name here
-maintainer:           example@example.com
-copyright:            2017 Author name here
-category:             Web
-build-type:           Simple
-extra-source-files:   README.md
-cabal-version:        >=1.10
+-- This file has been generated from package.yaml by hpack version 0.18.1.
+--
+-- see: https://github.com/sol/hpack
 
-library
-  hs-source-dirs:       src
-  exposed-modules:      HaskellWorks.Hedgehog
-                      , HaskellWorks.Hedgehog.Gen
-  build-depends:        base >= 4.7 && < 5
-                      , hedgehog
-                      , vector
-  default-language:     Haskell2010
+name:           hw-hedgehog
+version:        0.1.0.2
+synopsis:       Extra hedgehog functionality
+description:    Extra hedgehog functionality.
+category:       Test
+homepage:       https://github.com/haskell-works/hw-hedgehog#readme
+bug-reports:    https://github.com/haskell-works/hw-hedgehog/issues
+author:         John Ky
+maintainer:     newhoggy@gmail.com
+copyright:      2017-2018 John Ky
+license:        BSD3
+license-file:   LICENSE
+tested-with:    GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.2
+build-type:     Simple
+cabal-version:  >= 1.10
 
-test-suite hw-hedgehog-test
-  type:                 exitcode-stdio-1.0
-  hs-source-dirs:       test
-  main-is:              Spec.hs
-  build-depends:        base
-                      , hw-hedgehog
-  ghc-options:          -threaded -rtsopts -with-rtsopts=-N
-  default-language:     Haskell2010
+extra-source-files:
+    README.md
 
 source-repository head
-  type:       git
-  location:   https://github.com/githubuser/hw-hedgehog
+  type: git
+  location: https://github.com/haskell-works/hw-hedgehog
+
+library
+  hs-source-dirs:
+      src
+  build-depends:
+      base >=4.8 && <5
+    , hedgehog >= 0.5 && < 0.7
+    , vector >= 0.10 && < 0.13
+  exposed-modules:
+      HaskellWorks.Hedgehog
+      HaskellWorks.Hedgehog.Gen
+  other-modules:
+      Paths_hw_hedgehog
+  default-language: Haskell2010
+
+test-suite hw-hedgehog-test
+  type: exitcode-stdio-1.0
+  main-is: Spec.hs
+  hs-source-dirs:
+      test
+  ghc-options: -threaded -rtsopts -with-rtsopts=-N
+  build-depends:
+      base
+    , hw-hedgehog
+  default-language: Haskell2010
diff --git a/src/HaskellWorks/Hedgehog/Gen.hs b/src/HaskellWorks/Hedgehog/Gen.hs
--- a/src/HaskellWorks/Hedgehog/Gen.hs
+++ b/src/HaskellWorks/Hedgehog/Gen.hs
@@ -1,10 +1,23 @@
+{-# LANGUAGE ScopedTypeVariables #-}
+
 module HaskellWorks.Hedgehog.Gen
   ( vector
   , storableVector
+  , word8x8
+  , tuple2
+  , tuple3
+  , tuple4
+  , tuple5
+  , tuple6
+  , tuple7
+  , tuple8
+  , tuple9
   ) where
 
-import Hedgehog
+import Data.Bits
+import Data.Word
 import Foreign.Storable
+import Hedgehog
 
 import qualified Data.Vector          as DV
 import qualified Data.Vector.Storable as DVS
@@ -16,3 +29,46 @@
 
 storableVector :: (Storable a, MonadGen m) => Range Int -> m a -> m (DVS.Vector a)
 storableVector n g = DVS.fromList <$> G.list n g
+
+word8x8 :: MonadGen m => m Word8 -> m Word64
+word8x8 gen = do
+  a :: Word64 <- fromIntegral <$> gen
+  b :: Word64 <- fromIntegral <$> gen
+  c :: Word64 <- fromIntegral <$> gen
+  d :: Word64 <- fromIntegral <$> gen
+  e :: Word64 <- fromIntegral <$> gen
+  f :: Word64 <- fromIntegral <$> gen
+  g :: Word64 <- fromIntegral <$> gen
+  h :: Word64 <- fromIntegral <$> gen
+  return $  (a `shiftL` 56) .|.
+            (b `shiftL` 48) .|.
+            (c `shiftL` 40) .|.
+            (d `shiftL` 32) .|.
+            (e `shiftL` 24) .|.
+            (f `shiftL` 16) .|.
+            (g `shiftL`  8) .|.
+            (h `shiftL`  0)
+
+tuple2 :: MonadGen m => m a -> m (a, a)
+tuple2 gen = (,) <$> gen <*> gen
+
+tuple3 :: MonadGen m => m a -> m (a, a, a)
+tuple3 gen = (,,) <$> gen <*> gen <*> gen
+
+tuple4 :: MonadGen m => m a -> m (a, a, a, a)
+tuple4 gen = (,,,) <$> gen <*> gen <*> gen <*> gen
+
+tuple5 :: MonadGen m => m a -> m (a, a, a, a, a)
+tuple5 gen = (,,,,) <$> gen <*> gen <*> gen <*> gen <*> gen
+
+tuple6 :: MonadGen m => m a -> m (a, a, a, a, a, a)
+tuple6 gen = (,,,,,) <$> gen <*> gen <*> gen <*> gen <*> gen <*> gen
+
+tuple7 :: MonadGen m => m a -> m (a, a, a, a, a, a, a)
+tuple7 gen = (,,,,,,) <$> gen <*> gen <*> gen <*> gen <*> gen <*> gen <*> gen
+
+tuple8 :: MonadGen m => m a -> m (a, a, a, a, a, a, a, a)
+tuple8 gen = (,,,,,,,) <$> gen <*> gen <*> gen <*> gen <*> gen <*> gen <*> gen <*> gen
+
+tuple9 :: MonadGen m => m a -> m (a, a, a, a, a, a, a, a, a)
+tuple9 gen = (,,,,,,,,) <$> gen <*> gen <*> gen <*> gen <*> gen <*> gen <*> gen <*> gen <*> gen
