Could you please add a docstring here that warns this method is recursive?