cursor based list implementation