Логика работы программы