visitor is now provided on cursor creation rather than usage