why is this needed? it doesn't need to be called for each cursor