Вроде работает так, как нужно