добавлена возможность выбора алгоритма