diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,10 @@
 The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
 and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
 
+## 0.13.3
+### Changed
+- Improve code and documentation organisation.
+
 ## 0.13.2
 ### Changed
 - Move all packages from Network.Haskoin namespace to Haskoin namespace.
diff --git a/haskoin-core.cabal b/haskoin-core.cabal
--- a/haskoin-core.cabal
+++ b/haskoin-core.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: bd9822c23e8579ff68357d7e634d820b25e23e1d6ce81b019ebb8e96bc872370
+-- hash: 68a2e91c88690c0a8574a9151c0fd55c9a9a6d0ae9693909ebc8f1716eacb5d5
 
 name:           haskoin-core
-version:        0.13.2
+version:        0.13.3
 synopsis:       Bitcoin & Bitcoin Cash library for Haskell
 description:    Haskoin Core is a complete Bitcoin and Bitcoin Cash library of functions and data types for Haskell developers.
 category:       Bitcoin, Finance, Network
diff --git a/src/Haskoin.hs b/src/Haskoin.hs
--- a/src/Haskoin.hs
+++ b/src/Haskoin.hs
@@ -11,25 +11,14 @@
 specialized address and block-related functions.
 -}
 module Haskoin
-    ( -- * Address (Base58, Bech32, CashAddr)
-      module Address
-      -- * Network Messages
+    ( module Address
     , module Network
-      -- * Network Constants
     , module Constants
-      -- * Blocks
     , module Block
-      -- * Transactions
     , module Transaction
-      -- * Partially Signed Bitcoin Transactions
-    , module Partial
-      -- * Scripts
     , module Script
-      -- * Cryptographic Keys
     , module Keys
-      -- * Cryptographic Primitives
     , module Crypto
-      -- * Various Utilities
     , module Util
     ) where
 
@@ -41,5 +30,4 @@
 import           Haskoin.Network             as Network
 import           Haskoin.Script              as Script
 import           Haskoin.Transaction         as Transaction
-import           Haskoin.Transaction.Partial as Partial
 import           Haskoin.Util                as Util
diff --git a/src/Haskoin/Address.hs b/src/Haskoin/Address.hs
--- a/src/Haskoin/Address.hs
+++ b/src/Haskoin/Address.hs
@@ -14,7 +14,8 @@
 Base58, CashAddr, Bech32 address and WIF private key serialization support.
 -}
 module Haskoin.Address
-    ( Address(..)
+    ( -- * Addresses
+      Address(..)
     , isPubKeyAddress
     , isScriptAddress
     , isWitnessPubKeyAddress
@@ -41,14 +42,11 @@
     , payToNestedScriptAddress
     , scriptToAddress
     , scriptToAddressBS
-      -- * Private Key Wallet Import Format (WIF)
+      -- ** Private Key Wallet Import Format (WIF)
     , fromWif
     , toWif
-      -- * Base58
     , module Haskoin.Address.Base58
-      -- * Bech32
     , module Haskoin.Address.Bech32
-      -- * CashAddr
     , module Haskoin.Address.CashAddr
     ) where
 
diff --git a/src/Haskoin/Address/Base58.hs b/src/Haskoin/Address/Base58.hs
--- a/src/Haskoin/Address/Base58.hs
+++ b/src/Haskoin/Address/Base58.hs
@@ -11,7 +11,8 @@
 (BTC) and CashAddr for Bitcoin Cash (BCH).
 -}
 module Haskoin.Address.Base58
-    ( Base58
+    ( -- * Base58
+      Base58
     , encodeBase58
     , decodeBase58
     , encodeBase58Check
diff --git a/src/Haskoin/Address/Bech32.hs b/src/Haskoin/Address/Bech32.hs
--- a/src/Haskoin/Address/Bech32.hs
+++ b/src/Haskoin/Address/Bech32.hs
@@ -11,7 +11,8 @@
 version of Marko Bencun's reference implementation.
 -}
 module Haskoin.Address.Bech32
-    ( HRP
+    ( -- * Bech32
+      HRP
     , Bech32
     , Data
     , bech32Encode
diff --git a/src/Haskoin/Address/CashAddr.hs b/src/Haskoin/Address/CashAddr.hs
--- a/src/Haskoin/Address/CashAddr.hs
+++ b/src/Haskoin/Address/CashAddr.hs
@@ -10,7 +10,8 @@
 Support for Bitcoin Cash (BCH) CashAddr format.
 -}
 module Haskoin.Address.CashAddr
-    ( CashPrefix
+    ( -- * CashAddr
+      CashPrefix
     , CashVersion
     , CashAddr
     , Cash32
diff --git a/src/Haskoin/Block.hs b/src/Haskoin/Block.hs
--- a/src/Haskoin/Block.hs
+++ b/src/Haskoin/Block.hs
@@ -10,9 +10,7 @@
 -}
 module Haskoin.Block
     ( module Haskoin.Block.Common
-      -- * Block Header Chain
     , module Haskoin.Block.Headers
-      -- * Merkle Blocks
     , module Haskoin.Block.Merkle
     ) where
 
diff --git a/src/Haskoin/Block/Common.hs b/src/Haskoin/Block/Common.hs
--- a/src/Haskoin/Block/Common.hs
+++ b/src/Haskoin/Block/Common.hs
@@ -11,7 +11,8 @@
 Common data types and functions to handle blocks from the block chain.
 -}
 module Haskoin.Block.Common
-    ( Block(..)
+    ( -- * Blocks
+      Block(..)
     , BlockHeight
     , Timestamp
     , BlockHeader(..)
diff --git a/src/Haskoin/Block/Headers.hs b/src/Haskoin/Block/Headers.hs
--- a/src/Haskoin/Block/Headers.hs
+++ b/src/Haskoin/Block/Headers.hs
@@ -15,14 +15,15 @@
 Block chain header synchronization and proof-of-work consensus functions.
 -}
 module Haskoin.Block.Headers
-    ( BlockNode(..)
+    ( -- * Block Headers
+      BlockNode(..)
     , BlockHeaders(..)
     , BlockWork
     , genesisNode
     , genesisBlock
     , isGenesis
     , chooseBest
-      -- * Header Chain Storage Functions
+      -- ** Header Store
     , parentBlock
     , getParents
     , getAncestor
@@ -30,14 +31,14 @@
     , connectBlocks
     , connectBlock
     , blockLocator
-      -- * In-Memory Header Chain Store
+      -- ** Header Memory Store
     , HeaderMemory(..)
     , ShortBlockHash
     , BlockMap
     , shortBlockHash
     , initialChain
     , genesisMap
-      -- * Helper Functions
+      -- ** Helper Functions
     , appendBlocks
     , validBlock
     , validCP
diff --git a/src/Haskoin/Block/Merkle.hs b/src/Haskoin/Block/Merkle.hs
--- a/src/Haskoin/Block/Merkle.hs
+++ b/src/Haskoin/Block/Merkle.hs
@@ -11,14 +11,14 @@
 Function to deal with Merkle trees inside blocks.
 -}
 module Haskoin.Block.Merkle
-    ( MerkleBlock(..)
+    ( -- * Merkle Blocks
+      MerkleBlock(..)
     , MerkleRoot
     , FlagBits
     , PartialMerkleTree
     , buildMerkleRoot
     , merkleBlockTxs
     , testMerkleRoot
-    -- * Helper functions
     , buildPartialMerkle
     , decodeMerkleFlags
     , encodeMerkleFlags
diff --git a/src/Haskoin/Constants.hs b/src/Haskoin/Constants.hs
--- a/src/Haskoin/Constants.hs
+++ b/src/Haskoin/Constants.hs
@@ -13,7 +13,8 @@
 Cash (BCH), and corresponding public test and private regression test networks.
 -}
 module Haskoin.Constants
-    ( Network(..)
+    ( -- * Constants
+      Network(..)
     , btc
     , btcTest
     , btcRegTest
diff --git a/src/Haskoin/Crypto.hs b/src/Haskoin/Crypto.hs
--- a/src/Haskoin/Crypto.hs
+++ b/src/Haskoin/Crypto.hs
@@ -9,11 +9,8 @@
 Hashing functions and ECDSA signatures.
 -}
 module Haskoin.Crypto
-    ( -- * Hashes
-      module Hash
-      -- * Signatures
+    ( module Hash
     , module Signature
-      -- * Secp256k1 (re-exported)
     , module Secp256k1
     ) where
 
diff --git a/src/Haskoin/Crypto/Signature.hs b/src/Haskoin/Crypto/Signature.hs
--- a/src/Haskoin/Crypto/Signature.hs
+++ b/src/Haskoin/Crypto/Signature.hs
@@ -11,7 +11,8 @@
 library.
 -}
 module Haskoin.Crypto.Signature
-    ( putSig
+    ( -- * Signatures
+      putSig
     , getSig
     , signHash
     , verifyHashSig
@@ -27,7 +28,6 @@
 import           Data.ByteString.Short (toShort)
 import           Data.Maybe            (fromMaybe)
 import           Data.Serialize        as S
-import           Data.Serialize.Put    (Putter, putByteString)
 import           Haskoin.Crypto.Hash
 import           Numeric               (showHex)
 
diff --git a/src/Haskoin/Keys.hs b/src/Haskoin/Keys.hs
--- a/src/Haskoin/Keys.hs
+++ b/src/Haskoin/Keys.hs
@@ -11,9 +11,7 @@
 -}
 module Haskoin.Keys
     ( module Haskoin.Keys.Common
-    -- * Extended Keys
     , module Haskoin.Keys.Extended
-    -- * Mnemonic
     , module Haskoin.Keys.Mnemonic
     ) where
 
diff --git a/src/Haskoin/Network/Common.hs b/src/Haskoin/Network/Common.hs
--- a/src/Haskoin/Network/Common.hs
+++ b/src/Haskoin/Network/Common.hs
@@ -34,7 +34,6 @@
     , VarString(..)
     , Version(..)
     , MessageCommand(..)
-      -- ** Useful Functions
     , reject
     , nodeNone
     , nodeNetwork
diff --git a/src/Haskoin/Script.hs b/src/Haskoin/Script.hs
--- a/src/Haskoin/Script.hs
+++ b/src/Haskoin/Script.hs
@@ -11,9 +11,11 @@
 deconstructing all of the standard input and output script types.
 -}
 module Haskoin.Script
-    ( module X
+    ( module Common
+    , module Standard
+    , module SigHash
     ) where
 
-import           Haskoin.Script.Common   as X
-import           Haskoin.Script.SigHash  as X
-import           Haskoin.Script.Standard as X
+import           Haskoin.Script.Common   as Common
+import           Haskoin.Script.SigHash  as SigHash
+import           Haskoin.Script.Standard as Standard
diff --git a/src/Haskoin/Script/Common.hs b/src/Haskoin/Script/Common.hs
--- a/src/Haskoin/Script/Common.hs
+++ b/src/Haskoin/Script/Common.hs
@@ -12,7 +12,8 @@
 Common script-related functions and data types.
 -}
 module Haskoin.Script.Common
-    ( ScriptOp(..)
+    ( -- * Scripts
+      ScriptOp(..)
     , Script(..)
     , PushDataType(..)
     , ScriptOutput(..)
diff --git a/src/Haskoin/Script/SigHash.hs b/src/Haskoin/Script/SigHash.hs
--- a/src/Haskoin/Script/SigHash.hs
+++ b/src/Haskoin/Script/SigHash.hs
@@ -12,28 +12,29 @@
 Transaction signatures and related functions.
 -}
 module Haskoin.Script.SigHash
-( SigHash
-, SigHashFlag(..)
-, sigHashAll
-, sigHashNone
-, sigHashSingle
-, hasAnyoneCanPayFlag
-, hasForkIdFlag
-, setAnyoneCanPayFlag
-, setForkIdFlag
-, isSigHashAll
-, isSigHashNone
-, isSigHashSingle
-, isSigHashUnknown
-, sigHashAddForkId
-, sigHashGetForkId
-, sigHashAddNetworkId
-, txSigHash
-, txSigHashForkId
-, TxSignature(..)
-, encodeTxSig
-, decodeTxSig
-) where
+    ( -- * Script Signatures
+      SigHash
+    , SigHashFlag(..)
+    , sigHashAll
+    , sigHashNone
+    , sigHashSingle
+    , hasAnyoneCanPayFlag
+    , hasForkIdFlag
+    , setAnyoneCanPayFlag
+    , setForkIdFlag
+    , isSigHashAll
+    , isSigHashNone
+    , isSigHashSingle
+    , isSigHashUnknown
+    , sigHashAddForkId
+    , sigHashGetForkId
+    , sigHashAddNetworkId
+    , txSigHash
+    , txSigHashForkId
+    , TxSignature(..)
+    , encodeTxSig
+    , decodeTxSig
+    ) where
 
 import           Control.DeepSeq
 import           Control.Monad
diff --git a/src/Haskoin/Script/Standard.hs b/src/Haskoin/Script/Standard.hs
--- a/src/Haskoin/Script/Standard.hs
+++ b/src/Haskoin/Script/Standard.hs
@@ -13,7 +13,8 @@
 pay-to-script-hash, pay-to-multisig and corresponding SegWit variants.
 -}
 module Haskoin.Script.Standard
-    ( ScriptInput(..)
+    ( -- * Standard Scripts
+      ScriptInput(..)
     , SimpleInput(..)
     , RedeemScript
     , encodeInput
diff --git a/src/Haskoin/Transaction.hs b/src/Haskoin/Transaction.hs
--- a/src/Haskoin/Transaction.hs
+++ b/src/Haskoin/Transaction.hs
@@ -10,11 +10,8 @@
 -}
 module Haskoin.Transaction
     ( module Common
-    -- * Builder
     , module Builder
-    -- * Segwit
     , module Segwit
-    -- * Partial
     , module Partial
     ) where
 
diff --git a/src/Haskoin/Transaction/Builder.hs b/src/Haskoin/Transaction/Builder.hs
--- a/src/Haskoin/Transaction/Builder.hs
+++ b/src/Haskoin/Transaction/Builder.hs
@@ -12,7 +12,7 @@
 selection.
 -}
 module Haskoin.Transaction.Builder
-    ( -- * Transaction Creation & Signing
+    ( -- * Transaction Builder
       buildAddrTx
     , buildTx
     , buildInput
diff --git a/src/Haskoin/Transaction/Common.hs b/src/Haskoin/Transaction/Common.hs
--- a/src/Haskoin/Transaction/Common.hs
+++ b/src/Haskoin/Transaction/Common.hs
@@ -12,7 +12,8 @@
 Code related to transactions parsing and serialization.
 -}
 module Haskoin.Transaction.Common
-    ( Tx(..)
+    ( -- * Transactions
+      Tx(..)
     , TxIn(..)
     , TxOut(..)
     , OutPoint(..)
diff --git a/src/Haskoin/Transaction/Partial.hs b/src/Haskoin/Transaction/Partial.hs
--- a/src/Haskoin/Transaction/Partial.hs
+++ b/src/Haskoin/Transaction/Partial.hs
@@ -14,7 +14,8 @@
 Code related to PSBT parsing and serialization.
 -}
 module Haskoin.Transaction.Partial
-    ( PartiallySignedTransaction (..)
+    ( -- * Partially-Signed Transactions
+      PartiallySignedTransaction (..)
     , Input (..)
     , Output (..)
     , UnknownMap (..)
diff --git a/src/Haskoin/Transaction/Segwit.hs b/src/Haskoin/Transaction/Segwit.hs
--- a/src/Haskoin/Transaction/Segwit.hs
+++ b/src/Haskoin/Transaction/Segwit.hs
@@ -15,7 +15,8 @@
 details.
 -}
 module Haskoin.Transaction.Segwit
-    ( WitnessProgram (..)
+    ( -- * Segwit
+      WitnessProgram (..)
     , WitnessProgramPKH (..)
     , WitnessProgramSH (..)
     , isSegwit
