diff --git a/pine.cabal b/pine.cabal
--- a/pine.cabal
+++ b/pine.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 4fc1ee58c90bfb12e309df8f5c093661bf359f96c9c103bd0083d938471e8434
+-- hash: 5c8ce70e58c9a2cc571577e2515cb558a15dc0c3aa9d5728c5f24331217746c9
 
 name:           pine
-version:        0.1.0.0
+version:        0.1.0.1
 synopsis:       Functional Reactive 2D Game Framework
 description:    Please see the README on GitHub at <https://github.com/githubuser/pine#readme>
 category:       Game
diff --git a/src/Pine.hs b/src/Pine.hs
--- a/src/Pine.hs
+++ b/src/Pine.hs
@@ -1,4 +1,5 @@
 
+-- | Everything you need is reixported by Pine, so you do not need to import any of the internal modules.
 module Pine
   ( runDefault
   , pine
@@ -13,5 +14,7 @@
 
 import Pine.Internal
 
+
+-- | Run the default program, which displays the Pine logo
 runDefault :: IO ()
 runDefault = defaultApp
diff --git a/src/Pine/Internal/Keyboard.hs b/src/Pine/Internal/Keyboard.hs
--- a/src/Pine/Internal/Keyboard.hs
+++ b/src/Pine/Internal/Keyboard.hs
@@ -1,8 +1,10 @@
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE LambdaCase #-}
 
+
+-- | Nothing here is complete. This module is extremely WIP
 module Pine.Internal.Keyboard
-  ( keyboardState
+  ( --keyboardState
   ) where
 
 import qualified SDL
diff --git a/src/Pine/Internal/Renderer.hs b/src/Pine/Internal/Renderer.hs
--- a/src/Pine/Internal/Renderer.hs
+++ b/src/Pine/Internal/Renderer.hs
@@ -20,6 +20,7 @@
 
 type TextureCache = Map FilePath SDL.Texture
 
+-- | This function initializes the window and takes an initial `Stateful` object that will be updated.
 pine :: (Stateful s, Drawable s)
      => Text
      -> SDL.WindowConfig
@@ -96,6 +97,7 @@
 instance Drawable DefaultState where
   draw (Logo img) = fromImage img
 
+-- | This simply opens a window with the Pine logo displayed
 defaultApp :: IO ()
 defaultApp = pine "Pine" defaultConfig (initial :: DefaultState)
   where
diff --git a/src/Pine/Internal/Types.hs b/src/Pine/Internal/Types.hs
--- a/src/Pine/Internal/Types.hs
+++ b/src/Pine/Internal/Types.hs
@@ -5,22 +5,31 @@
 import Data.Semigroup
 
 -- DeltaTime Double | KeyPress | KeyRelease | KeyState deriving (Eq, Show) --ideas
-data Event = DeltaTime Double | SDLEvent SDL.Event deriving (Eq, Show) --placeholder
+-- | placeholder
+data Event = DeltaTime Double | SDLEvent SDL.Event deriving (Eq, Show)
 
+
+-- | Drawable class contains the draw function, which takes a type and converts it into a `Canvas`
 class Drawable d where
   draw :: d -> Canvas --Foldable f => d -> f Image
 
+-- | Stateful class contains initial and update functions. Any objects in your game, including the overrall world, will update according to events that occur
 class Stateful s where
   initial :: s
-  update  :: Event -> s -> s -- Event -> s -> s
+  update  :: Event -> s -> s
 
+-- | An Image which is converted into a `Texture`
 newtype Image = Image
   { imageSrc :: FilePath
   } deriving (Eq, Show) -- put in other info later (like dimensions, quads, etc)
 
+
+-- | Create an image from a file
 newImage :: FilePath -> Image
 newImage = Image
 
+
+-- | A Canvas can be empty, a single `Image`, or a group of `Image`s. (WIP: Later text and other stuff will be added)
 data Canvas = EmptyCanvas | SingleImage Image | Images [Image] deriving (Eq, Show)
 
 instance Semigroup Canvas where
@@ -35,5 +44,6 @@
   mempty = EmptyCanvas
   mappend = (<>)
 
+-- | Convert a single `Image` into a `Canvas`
 fromImage :: Image -> Canvas
 fromImage = SingleImage
