fix inifinite loop