removed do{}while(0)