diff --git a/src/VoltageDividerWidget.cpp b/src/VoltageDividerWidget.cpp
index ae7700e73c909bbfcdc6fba1f13c5b0dcc5b5706..e6a984e973dc65314d9f939c5a2c5d1f40c89207 100644
--- a/src/VoltageDividerWidget.cpp
+++ b/src/VoltageDividerWidget.cpp
@@ -106,10 +106,8 @@ void VoltageDividerWidget::onCalcRequest()
   disconnect(ui->lineEditRmax, &QLineEdit::editingFinished, this,
              &VoltageDividerWidget::onCalcRequest);
 
-  int currentIdx = ui->comboBox->currentIndex();
-
-  VoltageDivider::ResultingResistors resResistors =
-      VoltageDivider::calc(u1, u2, rMin, rMax, *resSeries[currentIdx]);
+  VoltageDivider::ResultingResistors resResistors = VoltageDivider::calc(
+      u1, u2, rMin, rMax, *resSeries[ui->comboBox->currentIndex()]);
 
   onResultRefresh(resResistors.r1, resResistors.r2);
 
diff --git a/tests/UnitTest/VoltageDividerStub.cpp b/tests/UnitTest/VoltageDividerStub.cpp
index 71966df4e5d991a2555012fc453e64d66514a689..88e6bb060e1812d30154435acccbaf0a8c5fa4a8 100644
--- a/tests/UnitTest/VoltageDividerStub.cpp
+++ b/tests/UnitTest/VoltageDividerStub.cpp
@@ -6,10 +6,6 @@
 
 #include "VoltageDividerStub.h"
 
-double VoltageDivider::u1;
-double VoltageDivider::u2;
-double VoltageDivider::lowerRTh;
-double VoltageDivider::upperRTh;
-const ESeries* VoltageDivider::resSeries;
-int VoltageDivider::count;
-VoltageDivider::ResultingResistors VoltageDivider::resResistors;
+VoltageDivider::VoltageDivider()
+{
+}
diff --git a/tests/UnitTest/VoltageDividerStub.h b/tests/UnitTest/VoltageDividerStub.h
index 39da58eaadf5ce8387bf81224bc845da1a2be82a..3de857001f230a367dc7891255f5d008a5fb5ba4 100644
--- a/tests/UnitTest/VoltageDividerStub.h
+++ b/tests/UnitTest/VoltageDividerStub.h
@@ -14,16 +14,27 @@
 ///
 class VoltageDivider {
  public:
-  ///
-  /// \brief VoltageDivider Ctor
-  ///
-
   struct ResultingResistors
   {
     double r1;
     double r2;
   };
 
+  static VoltageDivider& getInstance()
+  {
+    static VoltageDivider instance;
+    return instance;
+  }
+
+  static void resetInstance()
+  {
+    getInstance().u1 = 0;
+    getInstance().u2 = 0;
+    getInstance().lowerRTh = 0;
+    getInstance().upperRTh = 0;
+    getInstance().count = 0;
+  }
+
   ///
   /// \brief Calculates the optimal values for R1 and R2. The base formula
   ///        behind this calculation is \f$u1=u2 {r2 \over r2+r1}\f$.
@@ -36,16 +47,16 @@ class VoltageDivider {
   /// \param resDecade gives the resister e-decade on which the resistor are
   ///                  calculated
   ///
-  ResultingResistors calc(double u1, double u2, double lowerRTh,
-                          double upperRTh, const ESeries& resSerie)
+  static ResultingResistors calc(double u1, double u2, double lowerRTh,
+                                 double upperRTh, const ESeries& resSerie)
   {
-    this->u1 = u1;
-    this->u2 = u2;
-    this->lowerRTh = lowerRTh;
-    this->upperRTh = upperRTh;
-    this->resSeries = &resSerie;
-    count++;
-    return resResistors;
+    getInstance().u1 = u1;
+    getInstance().u2 = u2;
+    getInstance().lowerRTh = lowerRTh;
+    getInstance().upperRTh = upperRTh;
+    getInstance().resSeries = &resSerie;
+    getInstance().count++;
+    return getInstance().resResistors;
   }
 
   void setResultingResistors(double r1, double r2)
@@ -107,17 +118,23 @@ class VoltageDivider {
   {
     return *resSeries;
   }
+
  signals:
  public slots:
 
  private:
-  static int count;
-  static double u1;
-  static double u2;
-  static double lowerRTh;
-  static double upperRTh;
-  static const ESeries* resSeries;
-  static ResultingResistors resResistors;
+  ///
+  /// \brief VoltageDivider Ctor
+  ///
+  VoltageDivider();
+
+  int count;
+  double u1;
+  double u2;
+  double lowerRTh;
+  double upperRTh;
+  const ESeries* resSeries;
+  ResultingResistors resResistors;
 };
 
 #endif  // VOLTAGEDIVIDER_H
diff --git a/tests/UnitTest/VoltageDividerWidgetTest.cpp b/tests/UnitTest/VoltageDividerWidgetTest.cpp
index 4a55a954178c3cef04df2810bdd8293743c41600..4eb3971d1578a28a0486f2074105336858dbb69e 100644
--- a/tests/UnitTest/VoltageDividerWidgetTest.cpp
+++ b/tests/UnitTest/VoltageDividerWidgetTest.cpp
@@ -34,20 +34,20 @@ void testGUIInput(const QString& strU1, const QString& strU2,
                   double u2, double rMin, double rMax, const ESeries& resSerie)
 {
   int callCnt = 0;
-  VoltageDivider vdStub;
-  vdStub.setResultingResistors(1, 1);
+  VoltageDivider::resetInstance();
+  VoltageDivider::getInstance().setResultingResistors(1, 1);
   VoltageDividerWidget vd;
   QPushButton* pBtn = vd.findChild<QPushButton*>("pushButton");
   ASSERT_TRUE(pBtn != 0);
 
   QTest::mouseClick(pBtn, Qt::LeftButton);
-  EXPECT_EQ(vdStub.getCount(), 0);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0);
 
   QLineEdit* leU1 = vd.findChild<QLineEdit*>("lineEditU1");
   ASSERT_TRUE(leU1 != 0);
   QTest::keyClicks(leU1, strU1);
   QTest::keyPress(leU1, Qt::Key_Enter);
-  EXPECT_EQ(vdStub.getCount(), 0);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0);
 
   QLineEdit* leU2 = vd.findChild<QLineEdit*>("lineEditU2");
   ASSERT_TRUE(leU2 != 0);
@@ -64,15 +64,15 @@ void testGUIInput(const QString& strU1, const QString& strU2,
   QTest::keyClicks(leRmax, strRMax);
   QTest::keyPress(leRmax, Qt::Key_Enter);
 
-  EXPECT_EQ(vdStub.getCount(), ++callCnt);
-  EXPECT_EQ(vdStub.getU1(), u1);
-  EXPECT_EQ(vdStub.getU2(), u2);
-  EXPECT_EQ(vdStub.getLowerRTh(), rMin);
-  EXPECT_EQ(vdStub.getUpperRTh(), rMax);
-  EXPECT_TRUE(vdStub.getESeries() == resSerie);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), ++callCnt);
+  EXPECT_EQ(VoltageDivider::getInstance().getU1(), u1);
+  EXPECT_EQ(VoltageDivider::getInstance().getU2(), u2);
+  EXPECT_EQ(VoltageDivider::getInstance().getLowerRTh(), rMin);
+  EXPECT_EQ(VoltageDivider::getInstance().getUpperRTh(), rMax);
+  EXPECT_TRUE(VoltageDivider::getInstance().getESeries() == resSerie);
 
   QTest::mouseClick(pBtn, Qt::LeftButton);
-  EXPECT_EQ(vdStub.getCount(), ++callCnt);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), ++callCnt);
 }
 void testGUIInput(const QString& strU1, const QString& strU2,
                   const QString& strRMin, const QString& strRMax, double u1,
@@ -132,34 +132,34 @@ TEST(VoltageDividerWidgetTest, testUnits)
 TEST(VoltageDividerWidgetTest, testInputDefaults)
 {
   int callCnt = 0;
-  VoltageDivider vdStub;
+  VoltageDivider::resetInstance();
   VoltageDividerWidget vd;
   QPushButton* pBtn = vd.findChild<QPushButton*>("pushButton");
   ASSERT_TRUE(pBtn != 0);
 
   QTest::mouseClick(pBtn, Qt::LeftButton);
-  EXPECT_EQ(vdStub.getCount(), 0);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0);
 
   QLineEdit* leU1 = vd.findChild<QLineEdit*>("lineEditU1");
   ASSERT_TRUE(leU1 != 0);
   QTest::keyClicks(leU1, "12");
   QTest::keyPress(leU1, Qt::Key_Enter);
-  EXPECT_EQ(vdStub.getCount(), 0);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0);
 
   QLineEdit* leU2 = vd.findChild<QLineEdit*>("lineEditU2");
   ASSERT_TRUE(leU2 != 0);
   QTest::keyClicks(leU2, "5");
   QTest::keyPress(leU2, Qt::Key_Enter);
-  EXPECT_EQ(vdStub.getCount(), ++callCnt);
-  EXPECT_EQ(vdStub.getU1(), 12);
-  EXPECT_EQ(vdStub.getU2(), 5);
-  EXPECT_EQ(vdStub.getLowerRTh(), 1000);
-  EXPECT_EQ(vdStub.getUpperRTh(), 10000);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), ++callCnt);
+  EXPECT_EQ(VoltageDivider::getInstance().getU1(), 12);
+  EXPECT_EQ(VoltageDivider::getInstance().getU2(), 5);
+  EXPECT_EQ(VoltageDivider::getInstance().getLowerRTh(), 1000);
+  EXPECT_EQ(VoltageDivider::getInstance().getUpperRTh(), 10000);
   ESeries e24;
-  EXPECT_TRUE(vdStub.getESeries() == e24);
+  EXPECT_TRUE(VoltageDivider::getInstance().getESeries() == e24);
 
   QTest::mouseClick(pBtn, Qt::LeftButton);
-  EXPECT_EQ(vdStub.getCount(), ++callCnt);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), ++callCnt);
 }
 
 ///
@@ -168,7 +168,7 @@ TEST(VoltageDividerWidgetTest, testInputDefaults)
 ///
 TEST(VoltageDividerWidgetTest, testOutput)
 {
-  VoltageDivider vdStub;
+  VoltageDivider::resetInstance();
   VoltageDividerWidget vd;
 
   QLineEdit* leR1 = vd.findChild<QLineEdit*>("lineEditR1");
@@ -201,18 +201,15 @@ TEST(VoltageDividerWidgetTest, testOutput)
   ASSERT_TRUE(leU2 != 0);
   QTest::keyClicks(leU2, "3.3");
 
-  // generate calc signal to set U1, U2, Rmin, and Rmax
+  // set result and generate calc signal to set U1, U2, Rmin, and Rmax
+  VoltageDivider::getInstance().setResultingResistors(470, 180);
   QTest::keyPress(leU2, Qt::Key_Enter);
 
-  vdStub.setResultingResistors(470, 180);
-  ESeries eSerie;
-  vdStub.calc(0, 0, 0, 0, eSerie);
-
-  // Check Rmin
+  // Check R1
   EXPECT_TRUE(inpValidatorR1.getIsValid());
   EXPECT_EQ(inpValidatorR1.getValue(), 470);
 
-  // Check Rmax
+  // Check R2
   EXPECT_TRUE(inpValidatorR2.getIsValid());
   EXPECT_EQ(inpValidatorR2.getValue(), 180);
 
@@ -232,7 +229,7 @@ TEST(VoltageDividerWidgetTest, testOutput)
 ///
 TEST(VoltageDividerWidgetTest, testOutputNegativeAcc)
 {
-  VoltageDivider vdStub;
+  VoltageDivider::resetInstance();
   VoltageDividerWidget vd;
 
   QLineEdit* leR1 = vd.findChild<QLineEdit*>("lineEditR1");
@@ -266,12 +263,9 @@ TEST(VoltageDividerWidgetTest, testOutputNegativeAcc)
   QTest::keyClicks(leU2, "5.04");
 
   // generate calc signal to set U1, U2, Rmin, and Rmax
+  VoltageDivider::getInstance().setResultingResistors(1800, 1300);
   QTest::keyPress(leU2, Qt::Key_Enter);
 
-  vdStub.setResultingResistors(1800, 1300);
-  ESeries eSerie;
-  vdStub.calc(0, 0, 0, 0, eSerie);
-
   // Check Rmin
   EXPECT_TRUE(inpValidatorR1.getIsValid());
   EXPECT_EQ(inpValidatorR1.getValue(), 1800);
@@ -293,9 +287,9 @@ TEST(VoltageDividerWidgetTest, testOutputNegativeAcc)
 /// \brief testOutputZeroAcc
 /// \test  test output with zero value accuracy
 ///
-TEST(VoltageDividerWidgetTest, testOutputZeroAcc)
+TEST(VoltageDividerWidgetTest, testEqualU)
 {
-  VoltageDivider vdStub;
+  VoltageDivider::resetInstance();
   VoltageDividerWidget vd;
 
   QLineEdit* leR1 = vd.findChild<QLineEdit*>("lineEditR1");
@@ -331,25 +325,17 @@ TEST(VoltageDividerWidgetTest, testOutputZeroAcc)
   // generate calc signal to set U1, U2, Rmin, and Rmax
   QTest::keyPress(leU2, Qt::Key_Enter);
 
-  vdStub.setResultingResistors(470, 180);
-  ESeries eSerie;
-  vdStub.calc(0, 0, 0, 0, eSerie);
-
-  // Check Rmin
-  EXPECT_TRUE(inpValidatorR1.getIsValid());
-  EXPECT_EQ(inpValidatorR1.getValue(), 470);
+  // Check R1
+  EXPECT_FALSE(inpValidatorR1.getIsValid());
 
-  // Check Rmax
-  EXPECT_TRUE(inpValidatorR2.getIsValid());
-  EXPECT_EQ(inpValidatorR2.getValue(), 180);
+  // Check R2
+  EXPECT_FALSE(inpValidatorR2.getIsValid());
 
   // Check Vout
-  EXPECT_TRUE(inpValidatorVout.getIsValid());
-  EXPECT_EQ(inpValidatorVout.getValue(), 0);
+  EXPECT_FALSE(inpValidatorVout.getIsValid());
 
   // Check Accuracy
-  EXPECT_TRUE(inpValidatorAcc.getIsValid());
-  EXPECT_EQ(inpValidatorAcc.getValue(), 0);
+  EXPECT_FALSE(inpValidatorAcc.getIsValid());
 }
 
 ///
@@ -358,7 +344,7 @@ TEST(VoltageDividerWidgetTest, testOutputZeroAcc)
 ///
 TEST(VoltageDividerWidgetTest, testOutputInfAcc)
 {
-  VoltageDivider vdStub;
+  VoltageDivider::resetInstance();
   VoltageDividerWidget vd;
 
   QLineEdit* leR1 = vd.findChild<QLineEdit*>("lineEditR1");
@@ -392,12 +378,9 @@ TEST(VoltageDividerWidgetTest, testOutputInfAcc)
   QTest::keyClicks(leU2, "0");
 
   // generate calc signal to set U1, U2, Rmin, and Rmax
+  VoltageDivider::getInstance().setResultingResistors(470, 180);
   QTest::keyPress(leU2, Qt::Key_Enter);
 
-  vdStub.setResultingResistors(470, 180);
-  ESeries eSerie;
-  vdStub.calc(0, 0, 0, 0, eSerie);
-
   // Check Rmin
   EXPECT_TRUE(inpValidatorR1.getIsValid());
   EXPECT_EQ(inpValidatorR1.getValue(), 470);
@@ -421,19 +404,19 @@ TEST(VoltageDividerWidgetTest, testOutputInfAcc)
 ///
 TEST(VoltageDividerWidgetTest, testRminInvalid)
 {
-  VoltageDivider vdStub;
+  VoltageDivider::resetInstance();
   VoltageDividerWidget vd;
   QPushButton* pBtn = vd.findChild<QPushButton*>("pushButton");
   ASSERT_TRUE(pBtn != 0);
 
   QTest::mouseClick(pBtn, Qt::LeftButton);
-  EXPECT_EQ(vdStub.getCount(), 0);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0);
 
   QLineEdit* leU1 = vd.findChild<QLineEdit*>("lineEditU1");
   ASSERT_TRUE(leU1 != 0);
   QTest::keyClicks(leU1, "12");
   QTest::keyPress(leU1, Qt::Key_Enter);
-  EXPECT_EQ(vdStub.getCount(), 0);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0);
 
   QLineEdit* leU2 = vd.findChild<QLineEdit*>("lineEditU2");
   ASSERT_TRUE(leU2 != 0);
@@ -445,7 +428,7 @@ TEST(VoltageDividerWidgetTest, testRminInvalid)
   QTest::keyClicks(leRmin, "X");
 
   QTest::mouseClick(pBtn, Qt::LeftButton);
-  EXPECT_EQ(vdStub.getCount(), 0);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0);
 }
 
 ///
@@ -454,19 +437,19 @@ TEST(VoltageDividerWidgetTest, testRminInvalid)
 ///
 TEST(VoltageDividerWidgetTest, testRmaxInvalid)
 {
-  VoltageDivider vdStub;
+  VoltageDivider::resetInstance();
   VoltageDividerWidget vd;
   QPushButton* pBtn = vd.findChild<QPushButton*>("pushButton");
   ASSERT_TRUE(pBtn != 0);
 
   QTest::mouseClick(pBtn, Qt::LeftButton);
-  EXPECT_EQ(vdStub.getCount(), 0);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0);
 
   QLineEdit* leU1 = vd.findChild<QLineEdit*>("lineEditU1");
   ASSERT_TRUE(leU1 != 0);
   QTest::keyClicks(leU1, "12");
   QTest::keyPress(leU1, Qt::Key_Enter);
-  EXPECT_EQ(vdStub.getCount(), 0);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0);
 
   QLineEdit* leU2 = vd.findChild<QLineEdit*>("lineEditU2");
   ASSERT_TRUE(leU2 != 0);
@@ -483,7 +466,7 @@ TEST(VoltageDividerWidgetTest, testRmaxInvalid)
   QTest::keyClicks(leRmax, "X");
 
   QTest::mouseClick(pBtn, Qt::LeftButton);
-  EXPECT_EQ(vdStub.getCount(), 0);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0);
 }
 
 ///
@@ -492,19 +475,19 @@ TEST(VoltageDividerWidgetTest, testRmaxInvalid)
 ///
 TEST(VoltageDividerWidgetTest, testRmaxLsRmin)
 {
-  VoltageDivider vdStub;
+  VoltageDivider::resetInstance();
   VoltageDividerWidget vd;
   QPushButton* pBtn = vd.findChild<QPushButton*>("pushButton");
   ASSERT_TRUE(pBtn != 0);
 
   QTest::mouseClick(pBtn, Qt::LeftButton);
-  EXPECT_EQ(vdStub.getCount(), 0);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0);
 
   QLineEdit* leU1 = vd.findChild<QLineEdit*>("lineEditU1");
   ASSERT_TRUE(leU1 != 0);
   QTest::keyClicks(leU1, "12");
   QTest::keyPress(leU1, Qt::Key_Enter);
-  EXPECT_EQ(vdStub.getCount(), 0);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0);
 
   QLineEdit* leU2 = vd.findChild<QLineEdit*>("lineEditU2");
   ASSERT_TRUE(leU2 != 0);
@@ -521,7 +504,7 @@ TEST(VoltageDividerWidgetTest, testRmaxLsRmin)
   QTest::keyClicks(leRmax, "10");
 
   QTest::mouseClick(pBtn, Qt::LeftButton);
-  EXPECT_EQ(vdStub.getCount(), 0);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0);
 }
 
 ///
@@ -530,19 +513,19 @@ TEST(VoltageDividerWidgetTest, testRmaxLsRmin)
 ///
 TEST(VoltageDividerWidgetTest, testRmaxEqRmin)
 {
-  VoltageDivider vdStub;
+  VoltageDivider::resetInstance();
   VoltageDividerWidget vd;
   QPushButton* pBtn = vd.findChild<QPushButton*>("pushButton");
   ASSERT_TRUE(pBtn != 0);
 
   QTest::mouseClick(pBtn, Qt::LeftButton);
-  EXPECT_EQ(vdStub.getCount(), 0);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0);
 
   QLineEdit* leU1 = vd.findChild<QLineEdit*>("lineEditU1");
   ASSERT_TRUE(leU1 != 0);
   QTest::keyClicks(leU1, "12");
   QTest::keyPress(leU1, Qt::Key_Enter);
-  EXPECT_EQ(vdStub.getCount(), 0);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0);
 
   QLineEdit* leU2 = vd.findChild<QLineEdit*>("lineEditU2");
   ASSERT_TRUE(leU2 != 0);
@@ -559,7 +542,7 @@ TEST(VoltageDividerWidgetTest, testRmaxEqRmin)
   QTest::keyClicks(leRmax, "100");
 
   QTest::mouseClick(pBtn, Qt::LeftButton);
-  EXPECT_EQ(vdStub.getCount(), 0);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0);
 }
 
 ///
@@ -568,24 +551,29 @@ TEST(VoltageDividerWidgetTest, testRmaxEqRmin)
 ///
 TEST(VoltageDividerWidgetTest, testU1EqU2)
 {
-  VoltageDivider vdStub;
+  VoltageDivider::resetInstance();
   VoltageDividerWidget vd;
   QPushButton* pBtn = vd.findChild<QPushButton*>("pushButton");
   ASSERT_TRUE(pBtn != 0);
 
   QTest::mouseClick(pBtn, Qt::LeftButton);
-  EXPECT_EQ(vdStub.getCount(), 0);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0);
 
   QLineEdit* leU1 = vd.findChild<QLineEdit*>("lineEditU1");
   ASSERT_TRUE(leU1 != 0);
   QTest::keyClicks(leU1, "1");
   QTest::keyPress(leU1, Qt::Key_Enter);
-  EXPECT_EQ(vdStub.getCount(), 0);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0);
 
   QLineEdit* leU2 = vd.findChild<QLineEdit*>("lineEditU2");
   ASSERT_TRUE(leU2 != 0);
   QTest::keyClicks(leU2, "1");
 
   QTest::mouseClick(pBtn, Qt::LeftButton);
-  EXPECT_EQ(vdStub.getCount(), 0);
+  EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0);
+}
+
+TEST(VoltageDividerWidgetTest, dummy)
+{
+  VoltageDivider::calc(0, 0, 0, 0, ESeries());
 }