cleanup: separate public and private interface for hed_put_cursor