diff --git a/data/data.png b/data/data.png
index c0f8a629895bd8dad3cfbb90931b931c6a73cd7d..8ef97074fd4aba9d1f6067c4b163aa3bd62ee7c5 100644
Binary files a/data/data.png and b/data/data.png differ
diff --git a/data/options.json b/data/options.json
index 4daf3514d045a01b50abb1d7ed620290196dabab..4f53c04e4e17614fe5f4eccd52299250eb58f7dd 100644
--- a/data/options.json
+++ b/data/options.json
@@ -1 +1 @@
-{"asf": 1.0, "master_volume": 50, "music_volume": 21, "sfx_volume": 58, "user_name": "Player"}
\ No newline at end of file
+{"asf": 1.5, "master_volume": 50, "music_volume": 21, "sfx_volume": 58, "user_name": "Player"}
\ No newline at end of file
diff --git a/source/api/management/background_manager.py b/source/api/management/background_manager.py
index e76edbc5c9e0345225f7669b6c95a4eac5a77239..066024527136cf8693f46f83a24c2a51acc3807a 100644
--- a/source/api/management/background_manager.py
+++ b/source/api/management/background_manager.py
@@ -62,4 +62,4 @@ class BackgroundManager:
         """
         Updates the scale of the images.
         """
-        self.images = [pygame.transform.scale(image, (int(image.get_width()), int(image.get_height()))) for image in self.images]
\ No newline at end of file
+        self.images = [pygame.transform.scale(image, (int(self.screen.get_width()), int(self.screen.get_height()))) for image in self.images]
\ No newline at end of file
diff --git a/source/api/scene/base_display.py b/source/api/scene/base_display.py
index 48e7081ab38fa44d54d00d90a2d365876f1ee05c..b8bcc59f6fc228043ffea13f97205c47e2a82d9d 100644
--- a/source/api/scene/base_display.py
+++ b/source/api/scene/base_display.py
@@ -40,6 +40,7 @@ class BaseDisplay(ABC):
         Returns:
             None
         """
+        self.background_manager.update_scale()
         pass
 
     def update(self, delta_time: float, events: list[Event]) -> None:
diff --git a/source/api/scene/scene.py b/source/api/scene/scene.py
index c07ddba3fb9259a81108294c07cc4f9808f6206d..e036e262eacef2c78a10cdef3fda004fac1dd7e8 100644
--- a/source/api/scene/scene.py
+++ b/source/api/scene/scene.py
@@ -69,7 +69,6 @@ class Scene(BaseDisplay, ABC):
             None
         """
         self.user_name: str = OptionsManager().user_name
-        self.background_manager.update_scale()
         return super().awake()
 
     def add_gameobject(self, game_object: GameObject) -> None:
diff --git a/source/game/objects/spring.py b/source/game/objects/spring.py
index 864e1bad221eaa6f1ad5c43fb492d9d0e101cd06..e44e9746dcf3f65188c0207b6df4b09263c28b50 100644
--- a/source/game/objects/spring.py
+++ b/source/game/objects/spring.py
@@ -40,12 +40,11 @@ class Spring(GameObject):
         super().__init__(pos, 0, scene)
         self.spring_sound: pygame.mixer.Sound = pygame.mixer.Sound(ASSETS_PATH / Path("sounds/spring.wav"))
 
-        asf = OptionsManager().asf
         rel_points = [
-            Vector2(-width/2, -height/2)*asf,
-            Vector2(width/2, -height/2)*asf,
-            Vector2(width/2, height/2)*asf,
-            Vector2(-width/2, height/2)*asf
+            Vector2(-width/2, -height/2),
+            Vector2(width/2, -height/2),
+            Vector2(width/2, height/2),
+            Vector2(-width/2, height/2)
         ]
         self.change_score = ChangeScore(add_to_score, True, 1.5, 2)
         self.add_components(
diff --git a/source/game/objects/target.py b/source/game/objects/target.py
index 202d90ad3a90928e586e96477ab5d655ecd0f6db..7d14dc05c2d74b2a9c6c2a42c63f7298316b080a 100644
--- a/source/game/objects/target.py
+++ b/source/game/objects/target.py
@@ -42,6 +42,8 @@ class TargetBase(GameObject):
         """
         self.base_color = base_color
         self.hit_color = hit_color
+        self.width = width
+        self.height = height
 
         super().__init__(pos, -1, scene)
         self.hit_sound: pygame.mixer.Sound = pygame.mixer.Sound(ASSETS_PATH / Path("sounds/target_base.wav"))
@@ -108,13 +110,14 @@ class TargetBase(GameObject):
         Returns:
             dict: the serialized TargetBase
         """
+        asf = OptionsManager().asf
         return {
             "pos": {
-                "x": self.transform.pos.x,
-                "y": self.transform.pos.y
+                "x": self.transform.pos.x/asf,
+                "y": self.transform.pos.y/asf
             },
-            "width": self.mesh.points[1].x*2,
-            "height": self.mesh.points[2].y*2,
+            "width": self.width/asf,
+            "height": self.height/asf,
             "rotation": self.transform.rot.get_value(),
             "base_color": {
                 "r": self.base_color.r,
@@ -140,7 +143,10 @@ class TargetBase(GameObject):
         Returns:
             TargetBase: the deserialized TargetBase
         """
-        self.transform.pos = Vector2(data["pos"]["x"], data["pos"]["y"])
+        asf = OptionsManager().asf
+        self.transform.pos = Vector2(data["pos"]["x"], data["pos"]["y"]) * asf
+        self.width = data["width"] * asf
+        self.height = data["height"] * asf
         self.transform.rotate(data["rotation"])
         self.base_color = Color(data["base_color"]["r"], data["base_color"]["g"], data["base_color"]["b"])
         self.hit_color = Color(data["hit_color"]["r"], data["hit_color"]["g"], data["hit_color"]["b"])