fixed infinitely recursive call!