diff --git a/pom.xml b/pom.xml
index c5a60783e4412e6470f17878d3b382190540d3a6..fcbcd103bf8c0584aca57cbc15b8fbf097ec7dc0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,6 +20,12 @@
             <artifactId>junit-jupiter-api</artifactId>
             <version>5.9.2</version>
         </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.12</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
 
diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java
index cc6f03379fd377d615f27fc0b11ca08692dbd406..ed99421b91889dfbc04f530d2f14d688d1254be4 100644
--- a/src/main/java/Calculator.java
+++ b/src/main/java/Calculator.java
@@ -18,18 +18,15 @@ class Calculator {
     }
 
     public void subtract(int value) {
-        this.result += value;
+        this.result -= value;
     }
 
-    public void multiply(int value) {
-        for (int i=1; i<value; i++) {
-            add(value);
-        }
-    }
+    public void multiply(int value) {this.result *= value;}
 
     public void exponent(int value) {
+        int base = this.result;
         for(int i=1; i<value; i++) {
-            multiply(value);
+            this.result *= base;
         }
     }
 }
\ No newline at end of file
diff --git a/src/test/java/CalculatorTest.java b/src/test/java/CalculatorTest.java
index c01d1062b12f1f64fc4afbb8b4c580d1d6f410c2..54ac4c48c505a9891cd13d54dafe5fb821965efb 100644
--- a/src/test/java/CalculatorTest.java
+++ b/src/test/java/CalculatorTest.java
@@ -2,27 +2,52 @@ import static org.junit.jupiter.api.Assertions.*;
 
 class CalculatorTest {
 
+    private int result;
+
     @org.junit.jupiter.api.Test
     void reset() {
+        Calculator calculator = new Calculator();
+        calculator.reset();
+        assertEquals(0, this.result);
     }
 
     @org.junit.jupiter.api.Test
     void getResult() {
+        Calculator calculator = new Calculator();
+        assertEquals(this.result, calculator.getResult());
     }
 
     @org.junit.jupiter.api.Test
     void add() {
+        Calculator calculator = new Calculator();
+        calculator.add(10);
+        calculator.add(-5);
+        assertEquals(5, calculator.getResult());
     }
 
     @org.junit.jupiter.api.Test
     void subtract() {
+        Calculator calculator = new Calculator();
+        calculator.subtract(10);
+        calculator.subtract(-5);
+        assertEquals(-5, calculator.getResult());
     }
 
     @org.junit.jupiter.api.Test
     void multiply() {
+        Calculator calculator = new Calculator();
+        calculator.add(5);
+        calculator.multiply(2);
+        calculator.multiply(-3);
+        assertEquals(-30, calculator.getResult());
     }
 
     @org.junit.jupiter.api.Test
     void exponent() {
+        Calculator calculator = new Calculator();
+        calculator.add(3);
+        calculator.exponent(3);
+        calculator.exponent(4);
+        assertEquals(531441, calculator.getResult());
     }
 }
\ No newline at end of file