diff --git a/ECDSA.hs b/ECDSA.hs
--- a/ECDSA.hs
+++ b/ECDSA.hs
@@ -5,8 +5,7 @@
 	sign,
 	publicFromPrivate,
 	publicToBytes,
-	signatureEncodeDER,
-	pmul
+	signatureEncodeDER
 ) where
 
 import Data.Bits
@@ -22,13 +21,13 @@
 
 import ECDSA.Util
 
-sign :: (CryptoRandomGen g) => PrivateKey -> BS.ByteString -> g -> Either GenError ((Integer, Integer), g)
+sign :: (CryptoRandomGen g) => PrivateKey -> BS.ByteString -> g -> Either GenError (Signature, g)
 sign (PrivateKey curve@(CurveFP (CurvePrime _ (CurveCommon {ecc_g = g, ecc_n = n}))) d) hash gen = do
 	(bytes, gen') <- genBytes (lengthBytes n) gen
 	let k = (bs2i bytes `mod` (n-1)) + 1
 	let r = (\(Point x _) -> x) (pmul (curve, g) k) `mod` n
 	let s = ((bs2i hash + (r*d)) * modinv k n) `mod` n
-	return ((r,s), gen')
+	return (Signature r s, gen')
 	where
 sign _ _ _ = error "TODO: binary curves"
 
diff --git a/ecdsa.cabal b/ecdsa.cabal
--- a/ecdsa.cabal
+++ b/ecdsa.cabal
@@ -1,5 +1,5 @@
 name:            ecdsa
-version:         0.1.1
+version:         0.2
 cabal-version:   >= 1.8
 license:         OtherLicense
 license-file:    COPYING
