diff --git a/Data/ByteString/Pack.hs b/Data/ByteString/Pack.hs
--- a/Data/ByteString/Pack.hs
+++ b/Data/ByteString/Pack.hs
@@ -7,6 +7,7 @@
 -- Stability   : experimental
 -- Portability : unknown
 --
+-- Simple ByteString packer
 module Data.ByteString.Pack
     ( Packer
     , Result(..)
@@ -17,15 +18,18 @@
     , putByteString
     , fillList
     , fillUpWith
+    , putWord8
+    , putWord16
+    , putWord32
       -- ** skip
     , skip
     , skipStorable
     ) where
 
+import Control.Applicative
 import Data.ByteString.Internal (ByteString(..))
 import qualified Data.ByteString as B
 import qualified Data.ByteString.Internal as B
-import Control.Applicative
 import Data.Word
 import Foreign.ForeignPtr (withForeignPtr)
 import Foreign.Ptr
@@ -153,3 +157,21 @@
 fillList :: Storable storable => [storable] -> Packer ()
 fillList []     = return ()
 fillList (x:xs) = putStorable x >> fillList xs
+
+------------------------------------------------------------------------------
+-- Common packer                                                            --
+------------------------------------------------------------------------------
+
+-- | put Word8 in the current position in the stream
+putWord8 :: Word8 -> Packer ()
+putWord8 = putStorable
+
+-- | put Word16 in the current position in the stream
+-- /!\ use Host Endianness
+putWord16 :: Word16 -> Packer ()
+putWord16 = putStorable
+
+-- | put Word32 in the current position in the stream
+-- /!\ use Host Endianness
+putWord32 :: Word32 -> Packer ()
+putWord32 = putStorable
diff --git a/Tests/Tests.hs b/Tests/Tests.hs
--- a/Tests/Tests.hs
+++ b/Tests/Tests.hs
@@ -12,23 +12,14 @@
 import Test.Tasty.HUnit
 
 import Data.ByteString (ByteString)
+import qualified Data.ByteString as B
 import Data.ByteString.Pack
-import Data.Word
 import Data.Char
 
 ------------------------------------------------------------------------------
 -- Simple packers to test                                                   --
 ------------------------------------------------------------------------------
 
-putWord8 :: Word8 -> Packer ()
-putWord8 = putStorable
-
-putWord16 :: Word16 -> Packer ()
-putWord16 = putStorable
-
-putWord32 :: Word32 -> Packer ()
-putWord32 = putStorable
-
 testPackerOk :: ByteString -> Int -> Packer () -> Assertion
 testPackerOk expected size packer =
     case pack packer size of
@@ -55,17 +46,24 @@
 fromChar :: (Num a) => Char -> a
 fromChar = fromIntegral . ord
 
+-- Thank you wikipedia
+longByteString :: ByteString
+longByteString =
+    "Evolution is the change in the inherited characteristics of biological populations over successive generations. Evolutionary processes give rise to diversity at every level of biological organisation, including species, individual organisms and molecules such as DNA and proteins.[1] All life on Earth is descended from a last universal ancestor that lived approximately 3.8 billion years ago. Repeated speciation and the divergence of life can be inferred from shared sets of biochemical and morphological traits, or by shared DNA sequences.[2] These homologous traits and sequences are more similar among species that share a more recent common ancestor, and can be used to reconstruct evolutionary histories, using both existing species and the fossil record. Existing patterns of biodiversity have been shaped both by speciation and by extinction.[3]"
+
 refTestsOk = testGroup "All these tests must always pass"
     [ testCaseOk "put a byte"    "B"  1  (putWord8 $ fromChar 'B')
     , testCaseOk "write string"  "Haskell rocks!" 42 (putByteString "Haskell" >> putWord8 0x20 >> putByteString "rocks!")
     , testCaseOk "put a 2 bytes" "XY" 2 (putWord16 0x5958)
+    , testCaseOk "write long stuff" longByteString (B.length longByteString) (putByteString longByteString)
     ]
 
 refTestsFail = testGroup "Try to see that pack fails properly"
-    [ testCaseFail "not enough space" 1 (putWord32 42)
-    , testCaseFail "3 actions, enough for 1"     7 (putByteString "Haskell" >> putWord8 0x20 >> putByteString "rocks!")
-    , testCaseFail "3 actions, enough for 2"     8 (putByteString "Haskell" >> putWord8 0x20 >> putByteString "rocks!")
-    , testCaseFail "3 actions, enough for 2 bis" 9 (putByteString "Haskell" >> putWord8 0x20 >> putByteString "rocks!")
+    [ testCaseFail "not enough space"            1   (putWord32 42)
+    , testCaseFail "3 actions, enough for 1"     7   (putByteString "Haskell" >> putWord8 0x20 >> putByteString "rocks!")
+    , testCaseFail "3 actions, enough for 2"     8   (putByteString "Haskell" >> putWord8 0x20 >> putByteString "rocks!")
+    , testCaseFail "3 actions, enough for 2 bis" 9   (putByteString "Haskell" >> putWord8 0x20 >> putByteString "rocks!")
+    , testCaseFail "write a too long bytestirng" 124 (putByteString longByteString)
     ]
 
 tests = testGroup "bspack test suit"
diff --git a/bspack.cabal b/bspack.cabal
--- a/bspack.cabal
+++ b/bspack.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                bspack
-version:             0.0.1
+version:             0.0.2
 synopsis:            A simple and fast bytestring packer
 description:         A simple and fast bytestring packer
 homepage:            https://github.com/NicolasDP/hs-bspack
