Всё работает верно. Осталось отполировать и причесать код.