diff --git a/mod_pygame/phantom_castle.py b/mod_pygame/phantom_castle.py
index 5284d80..081dcae 100644
--- a/mod_pygame/phantom_castle.py
+++ b/mod_pygame/phantom_castle.py
@@ -22,7 +22,6 @@
 """
 
 import os
-import shutil
 import tempfile
 import urllib.request
 from abc import ABC, abstractmethod
@@ -70,29 +69,34 @@ def make_stub_image(path, name):
 
 @contextmanager
 def get_assets(names):
-    """Получение соответствия с расположением файлов картинок
-
-    Размер картинок нужно менять поэтому они всегда сохраняются во временные файлы.
-    """
+    """Получение соответствия с расположением файлов картинок"""
 
     assets_dir = "assets"
     files = {}
-    # поиск файлов (загрузка если их нет) и создание временных
+    tempfiles = []
+
     for asset in names:
-        _, ext = os.path.splitext(asset)
-        temppath = tempfile.mktemp(suffix=ext)
+        # поиск файлов
         filepath = os.path.join(assets_dir, asset)
         if os.path.isfile(filepath):
-            shutil.copyfile(filepath, temppath)
-        else:
-            if not download_asset(asset, temppath):
-                make_stub_image(temppath, asset)
+            files[asset] = filepath
+            continue
+
+        # создание временного файла
+        _, ext = os.path.splitext(asset)
+        fd, temppath = tempfile.mkstemp(suffix=ext)
+        os.close(fd)
+        tempfiles.append(temppath)
+        # попытка загрузки, если не получилось то создание заглушки
+        if not download_asset(asset, temppath):
+            make_stub_image(temppath, asset)
         files[asset] = temppath
 
     # передача управления
     yield files
     # очистка
-    for _, filename in files.items():
+    del files
+    for filename in tempfiles:
         try:
             os.remove(filename)
         except FileNotFoundError: