no more while(1)