});
// initialize navigator
IntSupplier cellCount = () -> area.getParagraphs().size();
IntUnaryOperator cellLength = i -> virtualFlow.getCell(i).getNode().getLineCount();
navigator = new TwoLevelNavigator(cellCount, cellLength);
// emits a value every time the area is done updating
EventStream<?> areaDoneUpdating = area.beingUpdatedProperty().offs();
// follow the caret every time the caret position or paragraphs change