   return newDoc.seq
 
 
-_decrementCounter = (counterName, amount = 1) ->
-  _incrementCounter(counterName, -amount)
+_decrementCounter = (collectionName, counterName, amount = 1) ->
+  _incrementCounter(collectionName, counterName, -amount)
 
 
-_setCounter = (counterName, value) ->
+_setCounter = (collectionName, counterName, value) ->
   callCounter(
     'update',
+    collectionName,
     {_id: counterName},
     {$set: {seq: value}}
   )

  getRawMongoCollection(collectionName)


callCounter = (method, args...) ->
  Counters = getCounterCollection()
  if Meteor._wrapAsync?
    Meteor._wrapAsync(_.bind(Counters[method], Counters))(args...)
  else

    future.wait()


_deleteCounters = (collectionName) ->
  callCounter('remove', collectionName, {}, {safe: true})


_incrementCounter = (collectionName, counterName, amount = 1) ->
  newDoc = callCounter(
    'findAndModify',
    collectionName,
    {_id: counterName},         # query
    null,                       # sort
    {$inc: {seq: amount}},      # update
