Ну вот тот что сверху полностью рабочий вариант, в точности совпадающий с тем что требовалось в задании.