     }
   }
 
-  func getLetters(path: String, filter: String) throws -> [Any] {
-    let data = httpRequest(AudioKnigiAPI.SiteUrl + path)?.data
-
-    return try buildLetters(data!, filter: filter)
+  func getLetters(path: String, filter: String) throws -> Observable<[Any]> {
+    let url = AudioKnigiAPI.SiteUrl + path
+
+    return Alamofire.request(url).rx.responseData().map { [weak self] data in
+      return try self!.buildLetters(data, filter: filter)
+    }
   }
 
   func buildLetters(_ data: Data, filter: String) throws -> [Any] {

    return ["movies": data, "pagination": paginationData]
  }

  public func getAuthors(page: Int=1) throws -> [String: Any] {
    return try getCollection(path: "/authors/", page: page)
  }

  public func getPerformers(page: Int=1) throws -> [String: Any] {
    return try getCollection(path: "/performers/", page: page)
  }

  func getCollection(path: String, page: Int=1) throws -> [String: Any] {
    var data = [Any]()
    var paginationData = [String: Any]()

    let pagePath = getPagePath(path: path, page: page)

    if let document = try fetchDocument(AudioKnigiAPI.SiteUrl + pagePath) {
      let items = try document.select("td[class=cell-name]")

      for item: Element in items.array() {
        let link = try item.select("h4 a")
        let name = try link.text()
        let href = try link.attr("href")
        let thumb = "https://audioknigi.club/templates/skin/aclub/images/avatar_blog_48x48.png"
        //try link.select("img").attr("src")

        let index = href.index(href.startIndex, offsetBy: AudioKnigiAPI.SiteUrl.count)

        let id = String(href[index ..< href.endIndex]) + "/"
        let filteredId = id.removingPercentEncoding!

        data.append(["type": "collection", "id": filteredId, "name": name, "thumb": thumb])
      }

      if !items.array().isEmpty {
        paginationData = try extractPaginationData(document: document, path: path, page: page)
      }
    }

    return ["movies": data, "pagination": paginationData]
  }

  public func getGenres(page: Int=1) -> Observable<[String: Any]> {

    }
  }

  public func getAuthorsLetters() -> Observable<[Any]> {
    let url = AudioKnigiAPI.SiteUrl + "/authors/"

