explained the infinite loop