Бился, бился и в итоге честно скопировал решение отсюда https://javarush.com/help/56166#discussion С учетом подсказок знатоков. В решении разобрался, как мне казалось, и вроде б сделал все по феншую. Но что-то все-таки упустил. Ткните носом, пожалуйста.