     handler(args...) for handler in handlersList
 
   handleMessage: (msg) =>
-    @msgHandlerQueue.shift()(msg)
+    @debugMsgConsole?.log "get-: #{@msgHandlerQueue[0].debug_id}: " + JSON.stringify(msg)
+    @msgHandlerQueue.shift().cb(msg)
 
   send: (msg) =>
+    @debugMsgConsole?.log "send: #{@msgHandlerQueue[@msgHandlerQueue.length - 1].debug_id}: " + JSON.stringify(msg)
     @socket.emit 'ToMpd', msg + "\n"
 
   getOrCreate: (key, table, list, initObjFunc) =>

    @socket = io.connect()
    @buffer = ""
    @msgHandlerQueue = []

    # whether we've sent the idle command to mpd
    @idling = false

    @socket.on 'disconnect', =>
      console.log "disconnected from Mpd"

    @socket.on 'FromMpd', (data) =>
      @buffer += data

        return

  rawSendCmd: (cmd, cb=noop) =>
    @msgHandlerQueue.push
      debug_id: @msgCounter++
      cb: cb
    @send cmd

  handleIdleResultsLoop: (msg) =>
