diff --git a/arbor-monad-counter.cabal b/arbor-monad-counter.cabal
--- a/arbor-monad-counter.cabal
+++ b/arbor-monad-counter.cabal
@@ -3,7 +3,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           arbor-monad-counter
-version:        2.0.0
+version:        2.0.1
 description:    Please see the README on Github at <https://github.com/arbor/arbor-monad-counter#readme>
 category:       Services
 homepage:       https://github.com/arbor/arbor-monad-counter#readme
diff --git a/src/Arbor/Monad/Counter.hs b/src/Arbor/Monad/Counter.hs
--- a/src/Arbor/Monad/Counter.hs
+++ b/src/Arbor/Monad/Counter.hs
@@ -9,6 +9,8 @@
   , incByKey'
   , addByKey
   , addByKey'
+  , setByKey
+  , setByKey'
 
   , newCounters
   , resetStats
@@ -16,6 +18,7 @@
   , extractValues
   , newCountersMap
   , deltaStats
+  , currentStats
   ) where
 
 import Arbor.Monad.Counter.Type    (CounterKey, CounterValue (CounterValue), Counters (Counters), CountersMap, MonadCounters)
@@ -31,7 +34,7 @@
 import qualified Data.Map.Strict          as M
 
 newCounters :: [CounterKey] -> IO Counters
-newCounters ks = Counters <$> newCountersMap ks <*> newCountersMap ks <*> newCountersMap ks
+newCounters ks = Counters <$> newCountersMap ks <*> newCountersMap ks
 
 newCountersMap :: [CounterKey] -> IO CountersMap
 newCountersMap (k:ks) = do
@@ -64,13 +67,25 @@
 
 -- Modify the current value with the supplied function
 modifyByKey' :: (Int -> Int) -> Counters -> CounterKey -> IO ()
-modifyByKey' f (Counters cur _ _) key = do
-  let (CounterValue v) = cur M.! key
-  atomically $ modifyTVar v f
+modifyByKey' f (Counters cur _) key = do
+  let (CounterValue tv) = cur M.! key
+  atomically $ modifyTVar tv f
 
+-- Set the current value
+setByKey :: MonadCounters m => Int -> CounterKey -> m ()
+setByKey value key = do
+  counters <- Z.getCounters
+  liftIO $ setByKey' value counters key
+
+-- Set the current value
+setByKey' :: Int -> Counters -> CounterKey -> IO ()
+setByKey' value (Counters cur _) key = do
+  let (CounterValue tv) = cur M.! key
+  atomically $ writeTVar tv value
+
 valuesByKeys :: MonadCounters m => [CounterKey] -> m [Int]
 valuesByKeys ks = do
-  (Counters cur _ _) <- Z.getCounters
+  (Counters cur _) <- Z.getCounters
   liftIO $ atomically $ sequence $ readTVar <$> ((\k -> cur M.! k ^. the @"var") <$> ks)
 
 extractValues :: CountersMap -> STM ([(CounterKey, Int)], [TVar Int])
@@ -81,7 +96,6 @@
   return (zip names nums, tvars)
 
 -- store the current stats into previous;
--- accumulate stats in total
 -- calculate the delta
 deltaStats :: MonadCounters m => m CountersMap
 deltaStats = do
@@ -91,21 +105,21 @@
   liftIO $ atomically $ do
     (_, oldTvars)   <- extractValues $ counters ^. the @"previous"
     (_, newTvars)   <- extractValues $ counters ^. the @"current"
-    (_, totalTvars) <- extractValues $ counters ^. the @"total"
     (_, deltaTvars) <- extractValues deltas
-    for_ (DL.zip4 oldTvars newTvars totalTvars deltaTvars) $ \(old, new, total, delta) -> do
+    for_ (DL.zip3 oldTvars newTvars deltaTvars) $ \(old, new, delta) -> do
       new' <- readTVar new
       old' <- readTVar old
-      total' <- readTVar total
       writeTVar old new'
       writeTVar delta (new' - old')
-      writeTVar total (total' + (new' - old'))
     return deltas
 
+currentStats :: MonadCounters m => m CountersMap
+currentStats = Z.getCounters <&> (^. the @"current")
+
 resetStats :: MonadCounters m => m ()
 resetStats = do
   counters <- Z.getCounters
-  sequence_ $ setZeroes <$> [counters ^. the @"current", counters ^. the @"previous", counters ^. the @"total"]
+  sequence_ $ setZeroes <$> [counters ^. the @"current", counters ^. the @"previous"]
 
 setZeroes :: MonadIO m => CountersMap -> m ()
 setZeroes cs = liftIO $ atomically $ do
diff --git a/src/Arbor/Monad/Counter/Type.hs b/src/Arbor/Monad/Counter/Type.hs
--- a/src/Arbor/Monad/Counter/Type.hs
+++ b/src/Arbor/Monad/Counter/Type.hs
@@ -24,7 +24,6 @@
 data Counters = Counters
   { current  :: CountersMap
   , previous :: CountersMap
-  , total    :: CountersMap
   } deriving (Generic)
 
 class (Monad m, MonadIO m) => MonadCounters m where
