Re-design of the cursor API