diff --git a/src/main/java/shape/AbstractShape.java b/src/main/java/shape/AbstractShape.java
index d83c61289dd31b6c3632250d633ed6a4badd0d0f..21e40a1edebb004e5fe1993931ce4500dfc5e8cb 100644
--- a/src/main/java/shape/AbstractShape.java
+++ b/src/main/java/shape/AbstractShape.java
@@ -1,3 +1,4 @@
+package shape;
 import javafx.geometry.Point2D;
 import javafx.scene.canvas.GraphicsContext;
 import java.util.ArrayList;
diff --git a/src/main/java/shape/BorderDecorator.java b/src/main/java/shape/BorderDecorator.java
index d6fc19243f8135af17befa57096a260e6835fe57..37c778799a659fbd896d567b1749f550482f2c89 100644
--- a/src/main/java/shape/BorderDecorator.java
+++ b/src/main/java/shape/BorderDecorator.java
@@ -1,3 +1,4 @@
+package shape;
 import javafx.geometry.Point2D;
 import javafx.scene.canvas.GraphicsContext;
 import javafx.scene.paint.Color;
diff --git a/src/main/java/shape/CenterDecorator.java b/src/main/java/shape/CenterDecorator.java
index f6705cb97e7e2a4a411b08f8deab91fe66183e9e..e0bc27f0dd5db47940a50b0503bf9158ab9995f9 100644
--- a/src/main/java/shape/CenterDecorator.java
+++ b/src/main/java/shape/CenterDecorator.java
@@ -1,6 +1,6 @@
 package shape;
-import javafx.scene.canvas.GraphicsContext;
 import javafx.geometry.Point2D;
+import javafx.scene.canvas.GraphicsContext;
 import javafx.scene.paint.Color;
 
 public class CenterDecorator extends Decorator {
@@ -14,16 +14,18 @@ public class CenterDecorator extends Decorator {
     @Override
     protected void drawDecoration(GraphicsContext graphicsContext) {
         graphicsContext.setStroke(Color.RED);
-        double centerX = 0, centerY = 0;
+        Point2D center = calculateCenter();
+        graphicsContext.strokeOval(center.getX() - radius, center.getY() - radius, radius * 2, radius * 2);
+    }
+
+    private Point2D calculateCenter() {
+        double sumX = 0;
+        double sumY = 0;
         for (int i = 0; i < decoratedShape.pointsCount(); i++) {
             Point2D point = decoratedShape.point(i);
-            centerX += point.getX();
-            centerY += point.getY();
+            sumX += point.getX();
+            sumY += point.getY();
         }
-        centerX /= decoratedShape.pointsCount();
-        centerY /= decoratedShape.pointsCount();
-
-        graphicsContext.strokeOval(centerX - radius, centerY - radius, radius * 2, radius * 2);
+        return new Point2D(sumX / decoratedShape.pointsCount(), sumY / decoratedShape.pointsCount());
     }
 }
-