recursive call fix