diff --git a/main.py b/main.py
index cd4c98c..a74876f 100644
--- a/main.py
+++ b/main.py
@@ -1,20 +1,47 @@
 import argparse
+import os.path
+import pathlib
 from app.watermark import watermark_text_bottom_right
 
 
 parser = argparse.ArgumentParser(__name__)
 parser.add_argument("-f", "--font", required=True, help='TTF Font file')
 parser.add_argument("-t", "--text", required=True, help='Text watermark')
-parser.add_argument("-i", "--input_filename", required=True, help='Input filename')
-parser.add_argument("-o", "--output_filename", required=True, help='Output filename')
+parser.add_argument("-i", "--input_filename", required=False, help='Input filename')
+parser.add_argument("-if", "--input_folder", required=False, help='Input folder')
+parser.add_argument("-m", "--file_mask", required=False, help='File mask')
+parser.add_argument("-o", "--output_filename", required=False, help='Output filename')
 args = parser.parse_args()
 
 
+def _find_all_files(folder: str, mask: str) -> list:
+    root = pathlib.Path(folder)
+    return [f"{os.path.join(file.parent, file.name)}" for file in root.rglob(mask) if '_wm' != os.path.splitext(file.name)[0][-3:]]
+
+def _build_output_filename(filename: str) -> str:
+    file = pathlib.Path(filename)
+    basename, extension = os.path.splitext(file.name)
+    newfilename = f"{basename}_wm{extension}"
+    print(f"file={file}, basename={basename}, extension={extension}, newname={newfilename}")
+    return f"{os.path.join(file.parent, newfilename)}"
+
 if __name__ == '__main__':
-    watermark_text_bottom_right(
-        input_image_path=args.input_filename, 
-        output_image_path=args.output_filename, 
-        text=args.text, 
-        font_path=args.font, 
-        pos=(1000, 200),
-        size=60)
\ No newline at end of file
+    if args.input_filename is not None:
+        watermark_text_bottom_right(
+            input_image_path=args.input_filename, 
+            output_image_path=args.output_filename, 
+            text=args.text, 
+            font_path=args.font, 
+            pos=(1000, 200),
+            size=60)
+    elif args.input_folder is not None and args.file_mask is not None:
+        files = _find_all_files(args.input_folder, args.file_mask)
+        print(f"files={files}")
+        for file in files:
+            watermark_text_bottom_right(
+                input_image_path=file, 
+                output_image_path=_build_output_filename(file), 
+                text=args.text, 
+                font_path=args.font, 
+                pos=(1000, 200),
+                size=60)
diff --git a/run-2.sh b/run-2.sh
new file mode 100755
index 0000000..5230492
--- /dev/null
+++ b/run-2.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+poetry run python main.py -t 'Кострома
+фото: Вячеслав Бойко, bvn13.me' -if 'samples' -m *.jpg -f fonts/Roboto-Regular.ttf
+
diff --git a/run-nesting.sh b/run-nesting.sh
deleted file mode 100644
index 9664ee5..0000000
--- a/run-nesting.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-
-FOLDER=$1
-MASK=$2
-TEXT=$3
-
-FILES=$(find $1 -name "$2")
-echo $FILES
-
-for fullpath in $FILES; do
-    filename="${fullpath##*/}"
-    dir="${fullpath:0:${#fullpath} - ${#filename}}"
-    base="${filename%.[^.]*}"
-    echo "$base"
-    if [[ $base != *_wm ]]
-    then
-        ext="${filename:${#base} + 1}"
-        output_file="$dir${base}_wm.$ext"
-        echo -e "$fullpath:\n\tdir  = \"$dir\"\n\tbase = \"$base\"\n\text  = \"$ext\"\n\toutput = $output_file"
-        poetry run python main.py -t "$TEXT" -i $fullpath -o $output_file -f fonts/Roboto-Regular.ttf
-    fi
-done
\ No newline at end of file
diff --git a/samples/output_wm.jpg b/samples/output_wm.jpg
new file mode 100644
index 0000000..8470e9d
Binary files /dev/null and b/samples/output_wm.jpg differ