 
   initializeRecords: =>
     @records = new XHRRecords()
-
-  initializeRoutes: (routes) =>
-    @routes = new Routes(routes)
 
   initializeXHR: (xhrOptions, interceptors, isLocal) =>
     xhr = axios.create(xhrOptions)

  initializeEvents: (events, numberOfRoutes, channel) =>
    @channel = channel or new EventEmitter2 wildcard: true, maxListeners: numberOfRoutes * 2
    _.forEach(events, _.spread(@channel.on.bind(@channel)))

  setOptions: (options) =>
    previousOptions = @getOptions?() or {}
    options = _.merge({}, API_DEFAULTS, previousOptions, options)

    @getOptions = -> options

  sendRequest: (requestInfo, routeData, requestData, args...) =>
    routeOptions = @routes.get(requestInfo)

    #   will override existing headers, not merge recursively.
    _.assign(@_xhr.defaults, xhrOptions)

  initializeEventOptions: (eventOptions) =>
    {pattern, send, receive, statuses} = eventOptions

    # {subject}.{topic}.{action}.send||(receive.(failure||success))
