вроде работает как надо