     future.wait()
 
 
-_deleteCounters = ->
-  callCounter('remove', {}, {safe: true})
+_deleteCounters = (collectionName) ->
+  callCounter('remove', collectionName, {}, {safe: true})
 
 
-_incrementCounter = (counterName, amount = 1) ->
+_incrementCounter = (collectionName, counterName, amount = 1) ->
   newDoc = callCounter(
     'findAndModify',
+    collectionName,
     {_id: counterName},         # query
     null,                       # sort
     {$inc: {seq: amount}},      # update

  return newDoc.seq


_decrementCounter = (counterName, amount = 1) ->
  _incrementCounter(counterName, -amount)


_setCounter = (counterName, value) ->
  callCounter(
    'update',
    {_id: counterName},
    {$set: {seq: value}}
  )

  getRawMongoCollection(collectionName)


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