diff --git a/blenderkit/autothumb_material_bg.py b/blenderkit/autothumb_material_bg.py
index 3ae0d5dd24f2263f0f02d3501d28f5e84b78c012..b5d2651b178bfde63d401ff81e2be7ad5701ae9c 100644
--- a/blenderkit/autothumb_material_bg.py
+++ b/blenderkit/autothumb_material_bg.py
@@ -84,8 +84,6 @@ if __name__ == "__main__":
         tscale = data["thumbnail_scale"]
         bpy.context.view_layer.objects['scaler'].scale = (tscale, tscale, tscale)
         bpy.context.view_layer.update()
-        print('we have this materialB')
-        print(mat)
 
         for ob in bpy.context.visible_objects:
             if ob.name[:15] == 'MaterialPreview':
@@ -103,7 +101,6 @@ if __name__ == "__main__":
                 if data["thumbnail_type"] in ['BALL', 'BALL_COMPLEX', 'CLOTH']:
                    utils.automap(ob.name, tex_size = ts / tscale, just_scale = True, bg_exception=True)
         bpy.context.view_layer.update()
-        print('got to C')
 
         s.cycles.volume_step_size = tscale * .1
 
diff --git a/blenderkit/autothumb_model_bg.py b/blenderkit/autothumb_model_bg.py
index 36945b52f8a8ad6c8fcecc143327a6b188db88a8..df9872fa12adf86f32559e67de4a78f175b8ed6e 100644
--- a/blenderkit/autothumb_model_bg.py
+++ b/blenderkit/autothumb_model_bg.py
@@ -18,7 +18,7 @@
 
 
 
-from blenderkit import utils, append_link, bg_blender, download, upload_bg
+from blenderkit import utils, append_link, bg_blender, download, upload_bg, upload
 
 import sys, json, math, os
 import bpy
@@ -136,7 +136,6 @@ if __name__ == "__main__":
         }
         s = bpy.context.scene
         s.frame_set(fdict[data['thumbnail_angle']])
-        print( 'got to C')
 
         snapdict = {
             'GROUND': 'Ground',
@@ -156,7 +155,6 @@ if __name__ == "__main__":
         s.cycles.samples = data['thumbnail_samples']
         bpy.context.view_layer.cycles.use_denoising = data['thumbnail_denoising']
         bpy.context.view_layer.update()
-        print( 'got to D')
 
         # import blender's HDR here
         # hdr_path = Path('datafiles/studiolights/world/interior.exr')
@@ -180,9 +178,10 @@ if __name__ == "__main__":
         render_thumbnails()
         fpath = data['thumbnail_path'] + '.jpg'
         if data.get('upload_after_render') and data.get('asset_data'):
+            # try to patch for the sake of older assets where thumbnail update doesn't work for the reasont
+            # that original thumbnail files aren't available.
+            # upload.patch_individual_metadata(data['asset_data']['id'], {}, user_preferences)
             bg_blender.progress('uploading thumbnail')
-            preferences = bpy.context.preferences.addons['blenderkit'].preferences
-            print('uploading A')
             file = {
                 "type": "thumbnail",
                 "index": 0,
@@ -190,20 +189,14 @@ if __name__ == "__main__":
             }
             upload_data = {
                 "name": data['asset_data']['name'],
-                "token": preferences.api_key,
+                "token": user_preferences.api_key,
                 "id": data['asset_data']['id']
             }
-            print('uploading B')
 
             upload_bg.upload_file(upload_data, file)
-            print('uploading C')
 
         bg_blender.progress('background autothumbnailer finished successfully')
 
-
-        print( 'got to E')
-
-
     except:
         import traceback
 
diff --git a/blenderkit/ratings.py b/blenderkit/ratings.py
index ae3127b123b9176085ac35d87c347a0f2b5161bc..1d7b843d52bc4829f9982623aa00f3465f4f1766 100644
--- a/blenderkit/ratings.py
+++ b/blenderkit/ratings.py
@@ -210,120 +210,12 @@ def draw_ratings_menu(self, context, layout):
         row.prop(self, 'rating_work_hours_ui_1_5', expand=True, icon_only=False, emboss=True)
 
 
-class FastRateMenu(Operator):
+class FastRateMenu(Operator, ratings_utils.RatingsProperties):
     """Rating of the assets , also directly from the asset bar - without need to download assets"""
     bl_idname = "wm.blenderkit_menu_rating_upload"
     bl_label = "Rate asset"
     bl_options = {'REGISTER', 'UNDO', 'INTERNAL'}
 
-    message: StringProperty(
-        name="message",
-        description="message",
-        default="Rating asset",
-        options={'SKIP_SAVE'})
-
-    asset_id: StringProperty(
-        name="Asset Base Id",
-        description="Unique id of the asset (hidden)",
-        default="",
-        options={'SKIP_SAVE'})
-
-    asset_name: StringProperty(
-        name="Asset Name",
-        description="Name of the asset (hidden)",
-        default="",
-        options={'SKIP_SAVE'})
-
-    asset_type: StringProperty(
-        name="Asset type",
-        description="asset type",
-        default="",
-        options={'SKIP_SAVE'})
-
-    rating_quality: IntProperty(name="Quality",
-                                description="quality of the material",
-                                default=0,
-                                min=-1, max=10,
-                                # update=ratings_utils.update_ratings_quality,
-                                options={'SKIP_SAVE'})
-
-    # the following enum is only to ease interaction - enums support 'drag over' and enable to draw the stars easily.
-    rating_quality_ui: EnumProperty(name='rating_quality_ui',
-                                    items=ratings_utils.stars_enum_callback,
-                                    description='Rating stars 0 - 10',
-                                    default=0,
-                                    update=ratings_utils.update_quality_ui,
-                                    options={'SKIP_SAVE'})
-
-    rating_work_hours: FloatProperty(name="Work Hours",
-                                     description="How many hours did this work take?",
-                                     default=0.00,
-                                     min=0.0, max=300,
-                                     # update=ratings_utils.update_ratings_work_hours,
-                                     options={'SKIP_SAVE'}
-                                     )
-
-    high_rating_warning = "This is a high rating, please be sure to give such rating only to amazing assets"
-
-    rating_work_hours_ui: EnumProperty(name="Work Hours",
-                                       description="How many hours did this work take?",
-                                       items=[('0', '0', ''),
-                                              ('.5', '0.5', ''),
-                                              ('1', '1', ''),
-                                              ('2', '2', ''),
-                                              ('3', '3', ''),
-                                              ('4', '4', ''),
-                                              ('5', '5', ''),
-                                              ('6', '6', ''),
-                                              ('8', '8', ''),
-                                              ('10', '10', ''),
-                                              ('15', '15', ''),
-                                              ('20', '20', ''),
-                                              ('30', '30', high_rating_warning),
-                                              ('50', '50', high_rating_warning),
-                                              ('100', '100', high_rating_warning),
-                                              ('150', '150', high_rating_warning),
-                                              ('200', '200', high_rating_warning),
-                                              ('250', '250', high_rating_warning),
-                                              ],
-                                       default='0', update=ratings_utils.update_ratings_work_hours_ui,
-                                       options={'SKIP_SAVE'}
-                                       )
-
-    rating_work_hours_ui_1_5: EnumProperty(name="Work Hours",
-                                           description="How many hours did this work take?",
-                                           items=[('0', '0', ''),
-                                                  ('.2', '0.2', ''),
-                                                  ('.5', '0.5', ''),
-                                                  ('1', '1', ''),
-                                                  ('2', '2', ''),
-                                                  ('3', '3', ''),
-                                                  ('4', '4', ''),
-                                                  ('5', '5', '')
-                                                  ],
-                                           default='0',
-                                           update=ratings_utils.update_ratings_work_hours_ui_1_5,
-                                           options={'SKIP_SAVE'}
-                                           )
-
-    rating_work_hours_ui_1_10: EnumProperty(name="Work Hours",
-                                            description="How many hours did this work take?",
-                                            items=[('0', '0', ''),
-                                                   ('1', '1', ''),
-                                                   ('2', '2', ''),
-                                                   ('3', '3', ''),
-                                                   ('4', '4', ''),
-                                                   ('5', '5', ''),
-                                                   ('6', '6', ''),
-                                                   ('7', '7', ''),
-                                                   ('8', '8', ''),
-                                                   ('9', '9', ''),
-                                                   ('10', '10', '')
-                                                   ],
-                                            default='0',
-                                            update=ratings_utils.update_ratings_work_hours_ui_1_10,
-                                            options={'SKIP_SAVE'}
-                                            )
 
     @classmethod
     def poll(cls, context):
diff --git a/blenderkit/ratings_utils.py b/blenderkit/ratings_utils.py
index be698300ffaa39552f5e561c29031af65276fd18..9ceea9d0c432b5547a39cf8b1ab0f8d402873b21 100644
--- a/blenderkit/ratings_utils.py
+++ b/blenderkit/ratings_utils.py
@@ -19,6 +19,18 @@
 # mainly update functions and callbacks for ratings properties, here to avoid circular imports.
 import bpy
 from blenderkit import utils, paths, tasks_queue, rerequests
+
+from bpy.props import (
+    IntProperty,
+    FloatProperty,
+    FloatVectorProperty,
+    StringProperty,
+    EnumProperty,
+    BoolProperty,
+    PointerProperty,
+)
+
+
 import threading
 import requests
 import logging
@@ -158,3 +170,113 @@ def stars_enum_callback(self, context):
         # has to have something before the number in the value, otherwise fails on registration.
         items.append((f'{a + 1}', f'{a + 1}', '', icon, a + 1))
     return items
+
+class RatingsProperties():
+    message: StringProperty(
+        name="message",
+        description="message",
+        default="Rating asset",
+        options={'SKIP_SAVE'})
+
+    asset_id: StringProperty(
+        name="Asset Base Id",
+        description="Unique id of the asset (hidden)",
+        default="",
+        options={'SKIP_SAVE'})
+
+    asset_name: StringProperty(
+        name="Asset Name",
+        description="Name of the asset (hidden)",
+        default="",
+        options={'SKIP_SAVE'})
+
+    asset_type: StringProperty(
+        name="Asset type",
+        description="asset type",
+        default="",
+        options={'SKIP_SAVE'})
+
+    rating_quality: IntProperty(name="Quality",
+                                description="quality of the material",
+                                default=0,
+                                min=-1, max=10,
+                                update=update_ratings_quality,
+                                options={'SKIP_SAVE'})
+
+    # the following enum is only to ease interaction - enums support 'drag over' and enable to draw the stars easily.
+    rating_quality_ui: EnumProperty(name='rating_quality_ui',
+                                    items=stars_enum_callback,
+                                    description='Rating stars 0 - 10',
+                                    default=0,
+                                    update=update_quality_ui,
+                                    options={'SKIP_SAVE'})
+
+    rating_work_hours: FloatProperty(name="Work Hours",
+                                     description="How many hours did this work take?",
+                                     default=0.00,
+                                     min=0.0, max=300,
+                                     update=update_ratings_work_hours,
+                                     options={'SKIP_SAVE'}
+                                     )
+
+    high_rating_warning = "This is a high rating, please be sure to give such rating only to amazing assets"
+
+    rating_work_hours_ui: EnumProperty(name="Work Hours",
+                                       description="How many hours did this work take?",
+                                       items=[('0', '0', ''),
+                                              ('.5', '0.5', ''),
+                                              ('1', '1', ''),
+                                              ('2', '2', ''),
+                                              ('3', '3', ''),
+                                              ('4', '4', ''),
+                                              ('5', '5', ''),
+                                              ('6', '6', ''),
+                                              ('8', '8', ''),
+                                              ('10', '10', ''),
+                                              ('15', '15', ''),
+                                              ('20', '20', ''),
+                                              ('30', '30', high_rating_warning),
+                                              ('50', '50', high_rating_warning),
+                                              ('100', '100', high_rating_warning),
+                                              ('150', '150', high_rating_warning),
+                                              ('200', '200', high_rating_warning),
+                                              ('250', '250', high_rating_warning),
+                                              ],
+                                       default='0', update=update_ratings_work_hours_ui,
+                                       options={'SKIP_SAVE'}
+                                       )
+
+    rating_work_hours_ui_1_5: EnumProperty(name="Work Hours",
+                                           description="How many hours did this work take?",
+                                           items=[('0', '0', ''),
+                                                  ('.2', '0.2', ''),
+                                                  ('.5', '0.5', ''),
+                                                  ('1', '1', ''),
+                                                  ('2', '2', ''),
+                                                  ('3', '3', ''),
+                                                  ('4', '4', ''),
+                                                  ('5', '5', '')
+                                                  ],
+                                           default='0',
+                                           update=update_ratings_work_hours_ui_1_5,
+                                           options={'SKIP_SAVE'}
+                                           )
+
+    rating_work_hours_ui_1_10: EnumProperty(name="Work Hours",
+                                            description="How many hours did this work take?",
+                                            items=[('0', '0', ''),
+                                                   ('1', '1', ''),
+                                                   ('2', '2', ''),
+                                                   ('3', '3', ''),
+                                                   ('4', '4', ''),
+                                                   ('5', '5', ''),
+                                                   ('6', '6', ''),
+                                                   ('7', '7', ''),
+                                                   ('8', '8', ''),
+                                                   ('9', '9', ''),
+                                                   ('10', '10', '')
+                                                   ],
+                                            default='0',
+                                            update=update_ratings_work_hours_ui_1_10,
+                                            options={'SKIP_SAVE'}
+                                            )
\ No newline at end of file
diff --git a/blenderkit/ui.py b/blenderkit/ui.py
index 644980de6dc66bf5bfe0339eb0c3c598c8588478..182ab99aeb6ededd2ccc5176b96112d84163de96 100644
--- a/blenderkit/ui.py
+++ b/blenderkit/ui.py
@@ -1131,6 +1131,7 @@ class ParticlesDropDialog(bpy.types.Operator):
 #         wm = context.window_manager
 #         return wm.invoke_props_dialog(self, width=400)
 
+
 class AssetBarOperator(bpy.types.Operator):
     '''runs search and displays the asset bar at the same time'''
     bl_idname = "view3d.blenderkit_asset_bar"
@@ -1174,6 +1175,7 @@ class AssetBarOperator(bpy.types.Operator):
         ui_props.assetbar_on = False
 
     def modal(self, context, event):
+
         # This is for case of closing the area or changing type:
         ui_props = context.scene.blenderkitUI
         user_preferences = bpy.context.preferences.addons['blenderkit'].preferences
diff --git a/blenderkit/ui_panels.py b/blenderkit/ui_panels.py
index daa374c120c012418f63581cacf86617be548bb0..3cd7b7af15694ff029d940af497679e2e5ecce10 100644
--- a/blenderkit/ui_panels.py
+++ b/blenderkit/ui_panels.py
@@ -1402,121 +1402,14 @@ def label_or_url(layout, text='', tooltip='', url='', icon_value=None, icon=None
         layout.label(text=text)
 
 
-class AssetPopupCard(bpy.types.Operator):
+class AssetPopupCard(bpy.types.Operator, ratings_utils.RatingsProperties):
     """Generate Cycles thumbnail for model assets"""
     bl_idname = "wm.blenderkit_asset_popup"
     bl_label = "BlenderKit asset popup"
 
     width = 700
 
-    message: StringProperty(
-        name="message",
-        description="message",
-        default="Rating asset",
-        options={'SKIP_SAVE'})
-
-    asset_id: StringProperty(
-        name="Asset Base Id",
-        description="Unique id of the asset (hidden)",
-        default="",
-        options={'SKIP_SAVE'})
-
-    asset_name: StringProperty(
-        name="Asset Name",
-        description="Name of the asset (hidden)",
-        default="",
-        options={'SKIP_SAVE'})
-
-    asset_type: StringProperty(
-        name="Asset type",
-        description="asset type",
-        default="",
-        options={'SKIP_SAVE'})
-
-    rating_quality: IntProperty(name="Quality",
-                                description="quality of the material",
-                                default=0,
-                                min=-1, max=10,
-                                update=ratings_utils.update_ratings_quality,
-                                options={'SKIP_SAVE'})
-
-    # the following enum is only to ease interaction - enums support 'drag over' and enable to draw the stars easily.
-    rating_quality_ui: EnumProperty(name='rating_quality_ui',
-                                    items=ratings_utils.stars_enum_callback,
-                                    description='Rating stars 0 - 10',
-                                    default=0,
-                                    update=ratings_utils.update_quality_ui,
-                                    options={'SKIP_SAVE'})
-
-    rating_work_hours: FloatProperty(name="Work Hours",
-                                     description="How many hours did this work take?",
-                                     default=0.00,
-                                     min=0.0, max=300,
-                                     update=ratings_utils.update_ratings_work_hours,
-                                     options={'SKIP_SAVE'}
-                                     )
-
-    high_rating_warning = "This is a high rating, please be sure to give such rating only to amazing assets"
-
-    rating_work_hours_ui: EnumProperty(name="Work Hours",
-                                       description="How many hours did this work take?",
-                                       items=[('0', '0', ''),
-                                              ('.5', '0.5', ''),
-                                              ('1', '1', ''),
-                                              ('2', '2', ''),
-                                              ('3', '3', ''),
-                                              ('4', '4', ''),
-                                              ('5', '5', ''),
-                                              ('6', '6', ''),
-                                              ('8', '8', ''),
-                                              ('10', '10', ''),
-                                              ('15', '15', ''),
-                                              ('20', '20', ''),
-                                              ('30', '30', high_rating_warning),
-                                              ('50', '50', high_rating_warning),
-                                              ('100', '100', high_rating_warning),
-                                              ('150', '150', high_rating_warning),
-                                              ('200', '200', high_rating_warning),
-                                              ('250', '250', high_rating_warning),
-                                              ],
-                                       default='0', update=ratings_utils.update_ratings_work_hours_ui,
-                                       options={'SKIP_SAVE'}
-                                       )
-
-    rating_work_hours_ui_1_5: EnumProperty(name="Work Hours",
-                                           description="How many hours did this work take?",
-                                           items=[('0', '0', ''),
-                                                  ('.2', '0.2', ''),
-                                                  ('.5', '0.5', ''),
-                                                  ('1', '1', ''),
-                                                  ('2', '2', ''),
-                                                  ('3', '3', ''),
-                                                  ('4', '4', ''),
-                                                  ('5', '5', '')
-                                                  ],
-                                           default='0',
-                                           update=ratings_utils.update_ratings_work_hours_ui_1_5,
-                                           options={'SKIP_SAVE'}
-                                           )
-
-    rating_work_hours_ui_1_10: EnumProperty(name="Work Hours",
-                                            description="How many hours did this work take?",
-                                            items=[('0', '0', ''),
-                                                   ('1', '1', ''),
-                                                   ('2', '2', ''),
-                                                   ('3', '3', ''),
-                                                   ('4', '4', ''),
-                                                   ('5', '5', ''),
-                                                   ('6', '6', ''),
-                                                   ('7', '7', ''),
-                                                   ('8', '8', ''),
-                                                   ('9', '9', ''),
-                                                   ('10', '10', '')
-                                                   ],
-                                            default='0',
-                                            update=ratings_utils.update_ratings_work_hours_ui_1_10,
-                                            options={'SKIP_SAVE'}
-                                            )
+
 
     @classmethod
     def poll(cls, context):
@@ -1551,7 +1444,7 @@ class AssetPopupCard(bpy.types.Operator):
             return
         self.draw_property(layout, pretext, parameter)
 
-    def draw_properties(self, layout):
+    def draw_properties(self, layout, width = 250):
 
         if type(self.asset_data['parameters']) == list:
             mparams = utils.params_to_dict(self.asset_data['parameters'])
@@ -1563,7 +1456,7 @@ class AssetPopupCard(bpy.types.Operator):
             box = layout.box()
             box.scale_y = 0.8
             box.label(text='Description')
-            utils.label_multiline(box, self.asset_data['description'], width=200)
+            utils.label_multiline(box, self.asset_data['description'], width=width)
 
         pcoll = icons.icon_collections["main"]
 
@@ -1659,8 +1552,8 @@ class AssetPopupCard(bpy.types.Operator):
         # Free/Full plan or private Access
         plans_tooltip = 'BlenderKit has 2 plans:\n'\
                                          '  *  Free plan - more than 50% of all assets\n'\
-                                         '  *  Full plan - unlimited access to everything'\
-                                         'Click to go to subscriptions page.'
+                                         '  *  Full plan - unlimited access to everything\n'\
+                                         'Click to go to subscriptions page'
         plans_link = 'https://www.blenderkit.com/plans/pricing/'
         if self.asset_data['isPrivate']:
             t = 'Private'
@@ -1681,7 +1574,7 @@ class AssetPopupCard(bpy.types.Operator):
                                url=plans_link)
 
     def draw_author_area(self, context, layout, width=330):
-        self.draw_author(context, layout, width=330)
+        self.draw_author(context, layout, width=width)
 
     def draw_author(self, context, layout, width=330):
         image_split = 0.25
@@ -1746,8 +1639,9 @@ class AssetPopupCard(bpy.types.Operator):
         box_thumbnail.scale_y = .4
 
         box_thumbnail.template_icon(icon_value=self.img.preview.icon_id, scale=34.0)
+
         # row = box_thumbnail.row()
-        # row.scale_y = 4
+        # row.scale_y = 3
         # op = row.operator('view3d.asset_drag_drop', text='Drag & Drop from here', depress=True)
 
         row = box_thumbnail.row()
@@ -1795,21 +1689,22 @@ class AssetPopupCard(bpy.types.Operator):
             box_thumbnail.label(text=f"This asset has only {rcount} rating{'' if rcount == 1 else 's'} , please rate.")
             # box_thumbnail.label(text=f"Please rate this asset.")
 
-    def draw_menu_desc_author(self, context, layout):
+    def draw_menu_desc_author(self, context, layout, width = 330):
         box = layout.column()
 
         box.emboss = 'NORMAL'
         # left - tooltip & params
         row = box.row()
-        split_left_left = row.split(factor=0.7)
-        self.draw_properties(split_left_left)
+        split_factor = 0.7
+        split_left_left = row.split(factor=split_factor)
+        self.draw_properties(split_left_left, width = int(width*split_factor))
 
         # right - menu
         col1 = split_left_left.split()
         self.draw_menu(context, col1)
 
         # author
-        self.draw_author_area(context, box, width=330)
+        self.draw_author_area(context, box, width=width)
 
     def draw(self, context):
         ui_props = context.scene.blenderkitUI
@@ -1821,17 +1716,18 @@ class AssetPopupCard(bpy.types.Operator):
         # top draggabe bar with name of the asset
         top_row = layout.row()
         top_drag_bar = top_row.box()
-        top_drag_bar.alignment = 'CENTER'
-
         top_drag_bar.label(text=asset_data['displayName'])
+
         # left side
         row = layout.row(align=True)
+
+        split_ratio = 0.5
         split_left = row.split(factor=0.5)
         self.draw_thumbnail_box(split_left)
 
         # right split
         split_right = split_left.split()
-        self.draw_menu_desc_author(context, split_right)
+        self.draw_menu_desc_author(context, split_right, width = int(self.width*split_ratio))
 
         ratings_box = layout.box()
         ratings_box.scale_y = 0.7