diff --git a/radius.cabal b/radius.cabal
--- a/radius.cabal
+++ b/radius.cabal
@@ -1,5 +1,5 @@
 name:                radius
-version:             0.4.0.0
+version:             0.5.0.0
 synopsis:            Remote Authentication Dial In User Service (RADIUS)
 description:         This module provides types and on the wire de/coding of RADIUS packets as per RFC2865
 homepage:            https://github.com/erickg/radius#readme
diff --git a/src/Network/RADIUS/Encoding.hs b/src/Network/RADIUS/Encoding.hs
--- a/src/Network/RADIUS/Encoding.hs
+++ b/src/Network/RADIUS/Encoding.hs
@@ -13,7 +13,7 @@
 
 -}
 
-module Network.RADIUS.Encoding where
+module Network.RADIUS.Encoding (radiusHeaderSize, sign) where
 
 import Control.Monad               (when)
 import Data.Binary                 (Binary(..), encode)
@@ -82,6 +82,7 @@
   return Packet { getHeader           = header,
                   getPacketAttributes = attributes }
 
+-- | Add authenticator field to a RADIUS packet using the specified secret
 sign :: ByteString -> ByteString -> ByteString
 sign packet secret =
     let authenticator = hashMD5 $ packet `append` secret
@@ -89,6 +90,7 @@
         attributes    = B.drop (fromIntegral radiusHeaderSize) packet
     in prologue `append` authenticator `append` attributes
 
+-- | Used internally to calculate authenticator field
 hashMD5 :: ByteString -> ByteString
 hashMD5 = B.fromStrict . convert . (hashlazy :: ByteString -> Digest MD5)
 
