private void dispatch(UpdateRequest ur) {
        if (ur instanceof PrintRequest) {
            print((PrintRequest) ur);
        } else if (ur instanceof RemoveRequest) {
            remove(((RemoveRequest) ur));
        } else if (ur instanceof HighlightRequest) {
            HighlightRequest hr = (HighlightRequest) ur;
            highlightBlob(hr.getBlob(), hr.isBool());
        } else if (ur instanceof ContractRequest) {
            ContractRequest cr = (ContractRequest) ur;
            contract(cr.getBlob());
        } else if (ur instanceof ExpandRequest) {
            ExpandRequest er = (ExpandRequest) ur;
            expand(er.getBlob());
        } else if (ur instanceof MoveCaretRequest) {
            moveCaret(((MoveCaretRequest) ur).getWhere());
        } else if (ur instanceof AddRequest) {
            add((AddRequest) ur);
        } else if (ur instanceof MoveRequest) {
            move((MoveRequest) ur);
        }
    }