onSpin callback