prevent potential infinite loop