moved recursive call into a top lvl method