код работает не корректно, а почему, не могу понять