   # returns:
   #   Promise
   destroy: ({ id }, callback) ->
-    return callback(new Error('options.id is required')) unless id?
+    return @_reject('options.id is required', callback) unless id?
     method = 'delete'
     path = '/atom/edit/' + id
     # TODO: check res.statusCode is 200

    path = '/atom/feed'
    # TODO: check res.statusCode is 200
    @_request { method, path }, callback

  _request: ({ method, path, body }, callback) ->
    callback = callback ? (->)

  # returns:
  #   Promise
  update: ({ id, title }, callback) ->
    return @_reject('options.id is required', callback) unless id?
    return @_reject('options.title is required', callback) unless title?
    method = 'put'
    path = '/atom/edit/' + id
    body =
