Улучшена логика работы, исправлены ошибки