             let tracksResource = trackSearchResource(from: input)!
             let albumsResource = albumSearchResource(from: input)!
             
-            when(fulfilled: fetch(resource: artistsResource, with: input), fetch(resource: tracksResource, with: input), fetch(resource: albumsResource, with: input)).then(execute: { (response) -> Void in
+            when(fulfilled: fetch(resource: artistsResource, with: token), fetch(resource: tracksResource, with: token), fetch(resource: albumsResource, with: token)).then(execute: { (response) -> Void in
                 fulfill(response)
             }).catch(execute: { (error) in
                 reject(error)

            var tracks = [Track]()
            do {
                let json = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] ?? [:]
                let tracksArray = json["tracks"] as? [[String: Any]] ?? []
                for trackDict in tracksArray {
                    let name = trackDict["name"] as? String ?? ""
                    let uri = trackDict["uri"] as? String ?? ""
                    let track = Track(name: name, albumID: "blah", artistID: "blah", image: nil, uri: uri)

            var albums = [Album]()
            do {
                let json = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] ?? [:]
                let albumsArray = json["albums"] as? [String: Any] ?? [:]
                let items = albumsArray["items"] as? [[String: Any]] ?? []
                for albumDict in items {
                    let name = albumDict["name"] as? String ?? ""
                    
                    let album = Album(name: name, trackIDs: [], image: nil)
