diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Revision history for describe
 
+##0.3.0.1 -- 2020-01-09
+
+* Added unexposed combinator modules
+
 ##0.3.0.0 -- 2020-01-09
 
 * Reorganized module structure
diff --git a/describe.cabal b/describe.cabal
--- a/describe.cabal
+++ b/describe.cabal
@@ -3,7 +3,7 @@
 --   For further documentation, see http://haskell.org/cabal/users-guide/
 
 name:                describe
-version:             0.3.0.0
+version:             0.3.0.1
 synopsis:            Combinators for describing binary data structures
 description:         Combinators for describing binary data structures, which eliminate the boilerplate of having to write isomorphic Get and Put instances. Please see the Github page for examples.
 homepage:            https://github.com/riugabachi/describe
@@ -60,6 +60,8 @@
                        Data.Serialize.Describe.Combinators.FList,
                        Data.Serialize.Describe.Combinators.Const,
                        Data.Serialize.Describe.Combinators.Isolate,
+                       Data.Serialize.Describe.Combinators.Byte,
+                       Data.Serialize.Describe.Combinators.Remaining,
                        Data.Serialize.Describe.Combinators.ByteEnum,
                        Data.Serialize.Describe.Class
   hs-source-dirs:      src
diff --git a/src/Data/Serialize/Describe/Combinators/Byte.hs b/src/Data/Serialize/Describe/Combinators/Byte.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Serialize/Describe/Combinators/Byte.hs
@@ -0,0 +1,12 @@
+module Data.Serialize.Describe.Combinators.Byte where
+
+import Data.Word
+import Data.Int
+import Data.Serialize.Describe.Descriptor
+import Data.Serialize.Describe.Class
+
+w8 :: Integral i => (s -> i) -> Descriptor s i
+w8 f = fromIntegral <$> describe @Word8 (fromIntegral . f)
+
+i8 :: Integral i => (s -> i) -> Descriptor s i
+i8 f = fromIntegral <$> describe @Int8 (fromIntegral . f)
diff --git a/src/Data/Serialize/Describe/Combinators/Const.hs b/src/Data/Serialize/Describe/Combinators/Const.hs
--- a/src/Data/Serialize/Describe/Combinators/Const.hs
+++ b/src/Data/Serialize/Describe/Combinators/Const.hs
@@ -4,6 +4,7 @@
 import Data.Serialize.Describe
 import Data.Proxy
 
+-- | A type level wrapper around the equivalent of the @pure . const@ descriptor.
 data Const (n :: Nat) t = Const
 
 instance KnownNat n => Show (Const n t) where
diff --git a/src/Data/Serialize/Describe/Combinators/FList.hs b/src/Data/Serialize/Describe/Combinators/FList.hs
--- a/src/Data/Serialize/Describe/Combinators/FList.hs
+++ b/src/Data/Serialize/Describe/Combinators/FList.hs
@@ -7,6 +7,7 @@
 import Data.Serialize.Describe.Combinators.Const
 import Control.Monad
 
+-- | A type level wrapper around a fixed-length list combinator, with similar semantics to @FText@. The list element must be @Nullable@, meaning that it must have default value that can be used for padding the list if need be.
 newtype FList (n :: Nat) a 
   = FList { unwrapFList :: [a] }
   deriving (Show) via [a]
diff --git a/src/Data/Serialize/Describe/Combinators/Isolate.hs b/src/Data/Serialize/Describe/Combinators/Isolate.hs
--- a/src/Data/Serialize/Describe/Combinators/Isolate.hs
+++ b/src/Data/Serialize/Describe/Combinators/Isolate.hs
@@ -3,5 +3,6 @@
 import qualified Data.Serialize.Get as G
 import Data.Serialize.Describe.Descriptor
 
+-- | Wrapper around @isolate@ from Data.Serialize.Get
 isolate :: Int -> Descriptor s a -> Descriptor s a
 isolate amt desc = Descriptor (G.isolate amt $ unwrapGet desc, flip unwrapPut desc)
diff --git a/src/Data/Serialize/Describe/Combinators/LPList.hs b/src/Data/Serialize/Describe/Combinators/LPList.hs
--- a/src/Data/Serialize/Describe/Combinators/LPList.hs
+++ b/src/Data/Serialize/Describe/Combinators/LPList.hs
@@ -3,6 +3,7 @@
 import Data.Serialize.Describe
 import Control.Monad
 
+-- | A type level wrapper around a length-prefixed list combinator. The parameter @t@ is the integral descriptor to encode the length in.
 newtype LPList t a 
   = LPList { unwrapLPList :: [a] }
   deriving (Show) via [a]
diff --git a/src/Data/Serialize/Describe/Combinators/Remaining.hs b/src/Data/Serialize/Describe/Combinators/Remaining.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Serialize/Describe/Combinators/Remaining.hs
@@ -0,0 +1,14 @@
+module Data.Serialize.Describe.Combinators.Remaining where
+
+import Data.ByteString
+import qualified Data.Serialize.Get as G
+import qualified Data.Serialize.Put as P
+import Data.Serialize.Describe.Descriptor
+import Data.Serialize.Describe.Class
+
+-- | A  'Remaining' represents the rest of the buffer. Upon serialization, the entire wrapped ByteString will be written.
+newtype Remaining = Remaining { unwrapRemaining :: ByteString }
+
+instance Describe Remaining where
+  describe f = Descriptor (fmap Remaining . G.getByteString =<< G.remaining, \s -> P.putByteString (unwrapRemaining (f s)) >> pure (f s))
+
