Arrow-based API
Some refactoring of CursorArrow