diff --git a/Network/Wai/Middleware/Throttle.hs b/Network/Wai/Middleware/Throttle.hs
--- a/Network/Wai/Middleware/Throttle.hs
+++ b/Network/Wai/Middleware/Throttle.hs
@@ -23,9 +23,9 @@
 --   Warp.run 3000 app
 -- @
 
+{-# LANGUAGE CPP               #-}
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE RecordWildCards   #-}
-{-# LANGUAGE CPP   #-}
 
 module Network.Wai.Middleware.Throttle (
 
@@ -44,12 +44,12 @@
     , defaultThrottleSettings
     ) where
 
+import           Control.Applicative            ((<$>))
 import           Control.Concurrent.STM
 import           Control.Concurrent.TokenBucket
-import           Control.Monad                  (liftM,join)
-import           Data.Functor                   ((<$>))
+import           Control.Monad                  (join, liftM)
 import           Data.Function                  (on)
-import           Data.Hashable                  (hash,hashWithSalt,Hashable)
+import           Data.Hashable                  (Hashable, hash, hashWithSalt)
 import qualified Data.IntMap                    as IM
 import           Data.List                      (unionBy)
 import           GHC.Word                       (Word64)
@@ -100,29 +100,20 @@
 data ThrottleSettings = ThrottleSettings
     {
       -- | Determines whether the 'Request' is throttled
-      isThrottled   :: !(Request -> IO Bool)
+      isThrottled    :: !(Request -> IO Bool)
 
       -- | Function to run when the request is throttled.
       --
       -- The first argument is a 'Word64' containing the amount
       -- of microseconds until the next retry should be attempted
-    , onThrottled   :: !(Word64 -> Response)
-
-      -- Zone name
-      --
-      -- TODO use list of zones (rules)
-      -- , throttleZone      :: !T.Text
+    , onThrottled    :: !(Word64 -> Response)
 
       -- | Rate
-    , throttleRate  :: !Integer  -- requests / second
-
-      -- Maximum size of the address cache in MB (similar to nginx)
-      --
-      -- With nginx, can store approximately 160,000 addresses in 10MB.
-      -- , throttleCacheSize :: !Integer
+    , throttleRate   :: !Integer  -- requests / throttlePeriod
+    , throttlePeriod :: !Integer -- microseconds
 
       -- | Burst rate
-    , throttleBurst :: !Integer
+    , throttleBurst  :: !Integer
     }
 
 
@@ -135,9 +126,8 @@
 defaultThrottleSettings
     = ThrottleSettings {
         isThrottled         = return . const True
-        -- , throttleZone        = "" -- empty zone
-      , throttleRate        = 1  -- req / sec
-        -- , throttleCacheSize   = 10 -- 10M address cache
+      , throttleRate        = 1  -- req / throttlePeriod
+      , throttlePeriod      = 10^6 -- microseconds
       , throttleBurst       = 1  -- concurrent requests
       , onThrottled         = onThrottled'
       }
@@ -146,10 +136,6 @@
       responseLBS
         Http.status429
         [ ("Content-Type", "application/json")
-          -- , ("X-RateLimit-Limit", limit)
-          -- , ("X-RateLimit-Remaining", remaining)
-          -- , ("X-RateLimit-Reset",
-          --      bshow (fromIntegral rt / 1000000.0 :: Double))
         ]
         "{\"message\":\"Too many requests.\"}"
 
@@ -159,9 +145,9 @@
 -- Uses a 'Request's 'remoteHost' function to resolve the
 -- remote IP address.
 throttle :: ThrottleSettings
-            -> WaiThrottle
-            -> Application
-            -> Application
+         -> WaiThrottle
+         -> Application
+         -> Application
 throttle ThrottleSettings{..} (WT tmap) app req respond = do
 
     -- determine whether the request needs throttling
@@ -188,7 +174,8 @@
 
     throttleReq' remoteAddr (ThrottleState m) = do
 
-      let toInvRate r = round (1e6 / r)
+      let toInvRate r = round (period / r)
+          period     = (fromInteger throttlePeriod :: Double)
           invRate     = toInvRate (fromInteger throttleRate :: Double)
           burst       = fromInteger throttleBurst
 
diff --git a/test/HLint.hs b/test/HLint.hs
deleted file mode 100644
--- a/test/HLint.hs
+++ /dev/null
@@ -1,31 +0,0 @@
------------------------------------------------------------------------------
--- |
--- Module      : HLint
--- Description : Lint Testing Coverage
--- Copyright   : (c) 2015 Christopher Reichert
--- License     : BSD3
--- Maintainer  : Christopher Reichert <creichert07@gmail.com>
--- Stability   : testing
--- Portability : POSIX
-
-module Main (main) where
-
-import           Language.Haskell.HLint (hlint)
-import           System.Exit            (exitFailure, exitSuccess)
-
-
-main :: IO ()
-main = do
-    hints <- hlint arguments
-    print hints
-    if null hints
-       then exitSuccess
-       else exitFailure
-
-
-arguments :: [String]
-arguments =
-      [
-        "Network"
-      , "test"
-      ]
diff --git a/wai-middleware-throttle.cabal b/wai-middleware-throttle.cabal
--- a/wai-middleware-throttle.cabal
+++ b/wai-middleware-throttle.cabal
@@ -1,6 +1,6 @@
 
 name:                wai-middleware-throttle
-version:             0.2.0.2
+version:             0.2.1.0
 license:             BSD3
 license-file:        LICENSE
 author:              Christopher Reichert
@@ -60,12 +60,3 @@
                      , HUnit
                      , stm
                      , transformers
-
-
-test-suite hlint
-  main-is:          test/HLint.hs
-  ghc-options:      -Wall -threaded
-  type:             exitcode-stdio-1.0
-  default-language: Haskell2010
-  build-depends:    base
-                  , hlint
