                     sink.put(.Completed)
                 }
             })
-            return
+            disposable.addDisposable({ req.cancel() })
         }
     }
 
     func fetchFeedsByIds(feedIds: [String]) -> ColdSignal<[Feed]> {
         return ColdSignal { (sink, disposable) in
-            var paginationParams = PaginationParams()
-            self.client.fetchFeeds(feedIds, completionHandler: { (req, res, feeds, error) -> Void in
+            let req = self.client.fetchFeeds(feedIds, completionHandler: { (req, res, feeds, error) -> Void in
                 if let e = error {
                     sink.put(.Error(e))
                 } else {

                    sink.put(.Completed)
                }
            })
        }
    }

    func fetchCategories() -> ColdSignal<[FeedlyKit.Category]> {
        return ColdSignal { (sink, disposable) in
            let c = self.client
            c.fetchCategories({ (req, res, categories, error) -> Void in
                if let e = error {
                    sink.put(.Error(e))
                } else {

                    sink.put(.Completed)
                }
            })
            disposable.addDisposable({ req.cancel() })
        }
    }

    func searchFeeds(query: SearchQueryOfFeed) -> ColdSignal<[Feed]> {
        return ColdSignal { (sink, disposable) in
            let req = self.client.searchFeeds(query, completionHandler: { (req, res, feedResults, error) -> Void in
                if let e = error {
                    sink.put(.Error(e))
                } else {
