Знаю, решение не элегантное, но было принципиально решить самому. Вроде, все делает правильно, почему не пропускает?