diff --git a/Data/BinaryState.hs b/Data/BinaryState.hs
--- a/Data/BinaryState.hs
+++ b/Data/BinaryState.hs
@@ -40,6 +40,9 @@
   let (x,_,_) = Get.runGetState (State.evalStateT getter s) str 0
   in  x
 
+encodeWith :: (a -> PutState s ()) -> s -> a -> B.ByteString
+encodeWith putter s a = Put.runPut $ State.evalStateT (putter a) s
+
 encodeFile :: BinaryState s a => FilePath -> s -> a -> IO ()
 encodeFile f s v = B.writeFile f (encodeS s v)
 
diff --git a/binary-state.cabal b/binary-state.cabal
--- a/binary-state.cabal
+++ b/binary-state.cabal
@@ -1,12 +1,12 @@
 Name:           binary-state
-Version:        0.1
+Version:        0.1.1
 Cabal-Version:  >= 1.6
 License:        BSD3
 License-File:   LICENSE
 Author:         Ilya V. Portnov
 Maintainer:     portnov84@rambler.ru
 Synopsis:       Simple wrapper around Data.Binary, which adds StateT to Get/Put monads.
-Category:       Jvm
+Category:       Data
 Build-Type:     Simple
 Description:    This package declares BinaryState type class, which is similar to
                 Data.Binary.Binary, but Get/Put monads can track state.
@@ -14,9 +14,11 @@
 library
   Exposed-Modules: Data.BinaryState
 
-  Build-Depends:  base >= 3 && <= 5, haskell98, containers, binary,
+  Build-Depends:  base >= 3 && <= 5, containers, binary,
                   mtl > 1, bytestring
 
   ghc-options: -fwarn-unused-imports
 
-
+Source-repository head
+  type:     git
+  location: git://gitorious.org/binary-state/binary-state.git
