     }
 }
 
-// MAKR: -
-// MARK: Top movies list
-public extension TMDB {
-    public func fetchTopMovies(on page: Int = 1, completion: @escaping ((Cursor<Movie>) -> ())) {
-        Logging.log("Fetch top movies on page: \(page)")
-        let listRequest = ListTopMoviesRequest(page: page)
-        listRequest.resulthandler = {
-            result, error in
-            
-            if let cursor = result as? Cursor<Movie> {
-                completion(cursor)
-            }
-        }
-        runWithConfigCheck(request: listRequest)
-    }
-}
-
 // MARK: -
-// MARK: Popular
-public extension TMDB {
-    public func popular(on page: Int = 1, completion: @escaping ((Cursor<Movie>) -> ())) {
-        Logging.log("Fetch popular on page \(page)")
-        let listRequest = ListPopularMoviesRequest(page: page)
-        listRequest.resulthandler = {
-            result, error in
-            
-            if let cursor = result as? Cursor<Movie> {
-                completion(cursor)
-            }
-        }
-        runWithConfigCheck(request: listRequest)
-    }
-}
-
-// MARK: -
-// MARK: Movie genres
+// MARK: Movie genres list
 public extension TMDB {
     public func listMovieGenres(completion: @escaping ([Genre]) -> ()) {
         let request = ListMovieGenresRequest()

    public init(apiKey: String, networkFetch: NetworkFetch) {
        Injector.sharedInsatnce.apiKey = apiKey
        Injector.sharedInsatnce.networkFetch = networkFetch
    }
    
    public func fetchNextPage(_ cursor: Cursor<Movie>, completion: @escaping ((Cursor<Movie>) -> ())) {
        Logging.log("Fetch next page")
        fetchTopMovies(on: cursor.nextPage(), completion: completion)
    }
    
    public func detailsFor(movie: Movie, inclidedDetails details: Details = [], completion: @escaping (Movie?, Error?) -> ()) {
        Logging.log("Fetch details for movie:\(movie)")
        detailsFor(movieId: movie.id, inclidedDetails: details, completion: completion)
    }

    public func detailsFor(movieId: Int, inclidedDetails details: Details = [], completion: @escaping (Movie?, Error?) -> ()) {
        Logging.log("Fetch details for movieId:\(movieId)")
        let request = FetchDetailsRequest(movieId: movieId, includedDetails: details)
        request.resulthandler = {
            result, error in
            
            completion(result as? Movie, error)
        }
        runWithConfigCheck(request: request)
    }
    
    fileprivate func runWithConfigCheck(request: NetworkRequest) {

        }
        request.execute()
    }
}
