I would prefer an infinite loop rather than a recursive function if possible (easier to debug).