Improved recursion (no crashing)