         @logger.debug "#{method} #{path}"
         request options, (error, res, value) ->
             if error
-                if callback? then callback({'id': null, 'error': error.errno}, {})
+                if callback? then callback({'id': null, 'error': error.errno}, {}, callback_params)
             else
                 if callback?
                     if res.statusCode is 200
                         if typeof value == 'string'
                             value = JSON.parse(value)
-                        callback(value, res.headers)
+                        callback(value, res.headers, callback_params)
                     else
-                        callback({'id': null, 'error': 'API response: ' + res.statusCode}, res.headers)
+                        callback({'id': null, 'error': 'API response: ' + res.statusCode}, res.headers, callback_params)
 
 
 module.exports = Client

            return message


    _apiCall: (method, path, params, callback) ->
        post_data = ''
        post_data = JSON.stringify(params) if params?
        options =

            @logger.error 'Failed to get subscribed channels list from server: ' + data.error
            @emit 'error', { msg: 'failed to get channel list'}

    _onPreferences: (data, headers, params) =>
        if data && not data.error
            @preferences = data
            @emit 'preferencesLoaded', data
