use spinOnce instead of spin