             return
         }
 
+        let (signal, observer) = PagingSignal.pipe()
+        self.pagingObserver = observer
         signal
             .skipRepeats { $0 == $1 }
             .flatMap(FlattenStrategy.concat) { cursor in

                    self.presentError(title: "cannot fetch repositories", error: error)
                }
            }
        observer.send(value: cursor)
    }

    // MARK: - ScrollVeiw
    override func scrollViewDidScroll(_ scrollView: UIScrollView) {
        if tableView.contentOffset.y >= (tableView.contentSize.height - tableView.bounds.size.height) {
            observer.send(value: cursor)
        }
    }


    private let indicator: UIActivityIndicatorView = UIActivityIndicatorView(activityIndicatorStyle: .gray)
    private var repositories: [RepositoryObject] = []
    private var cursor: FetchRepositories.Cursor?
    private var pagingObserver: PagingSignal.Observer?

    init() {
        super.init(nibName: nil, bundle: nil)
        self.title = "Add repository"
    }
