changes according to check()