minor refactoring
pass isCancelled closure instead of indicator object
extracted HistoryGrabber