diff --git a/key-state.cabal b/key-state.cabal
--- a/key-state.cabal
+++ b/key-state.cabal
@@ -3,7 +3,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           key-state
-version:        0.0.0
+version:        0.1.0
 synopsis:       Manage key and button states and statuses
 description:    Manage key and button states and statuses
 category:       Game
diff --git a/library/KeyState.hs b/library/KeyState.hs
--- a/library/KeyState.hs
+++ b/library/KeyState.hs
@@ -1,4 +1,12 @@
-module KeyState where
+module KeyState
+  ( KeyStatus(..)
+  , KeyState(..)
+  , initKeyState
+  , pressedKeyState
+  , releasedKeyState
+  , updateKeyState
+  , maintainKeyState
+  ) where
 
 data KeyStatus
   = KeyStatus'Untouched
@@ -15,6 +23,12 @@
 initKeyState :: KeyState count
 initKeyState = KeyState KeyStatus'Untouched Nothing
 
+pressedKeyState :: KeyState count
+pressedKeyState = KeyState KeyStatus'Pressed Nothing
+
+releasedKeyState :: KeyState count
+releasedKeyState = KeyState KeyStatus'Released Nothing
+
 updateKeyState
   :: Num count
   => count -- ^ Counter delta
@@ -30,4 +44,15 @@
   KeyStatus'Untouched -> KeyState KeyStatus'Untouched (Just $ delta + (case ksCounter of Nothing -> 0; Just counter -> counter))
   KeyStatus'Pressed -> KeyState KeyStatus'Released Nothing
   KeyStatus'Held -> KeyState KeyStatus'Released Nothing
+  KeyStatus'Released -> KeyState KeyStatus'Untouched Nothing
+
+maintainKeyState
+  :: Num count
+  => count -- ^ Counter delta
+  -> KeyState count
+  -> KeyState count
+maintainKeyState delta KeyState{ksStatus, ksCounter} = case ksStatus of
+  KeyStatus'Untouched -> KeyState KeyStatus'Untouched (Just $ delta + (case ksCounter of Nothing -> 0; Just counter -> counter))
+  KeyStatus'Pressed -> KeyState KeyStatus'Held Nothing
+  KeyStatus'Held -> KeyState KeyStatus'Held (Just $ delta + (case ksCounter of Nothing -> 0; Just counter -> counter))
   KeyStatus'Released -> KeyState KeyStatus'Untouched Nothing
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -1,5 +1,5 @@
 name: key-state
-version: '0.0.0'
+version: '0.1.0'
 category: Game
 synopsis: Manage key and button states and statuses
 description: Manage key and button states and statuses
