Добавлено логическое разбиение на функции