infinite loop, we probably should add some type of fail if trying longer than 5-10 minutes