You should be able to use `Cursor::setBufferPosition` rather than destroying and recreating unless I'm missing something.