diff --git a/CEP/DP3/DPPP/include/DPPP/StefCal.h b/CEP/DP3/DPPP/include/DPPP/StefCal.h
index b8a7fa440e3bc431b3fe653cfc5366d1b8c7e9ea..3347ffac702d317b67f17b5d524d977a9689afb1 100644
--- a/CEP/DP3/DPPP/include/DPPP/StefCal.h
+++ b/CEP/DP3/DPPP/include/DPPP/StefCal.h
@@ -39,14 +39,12 @@ namespace LOFAR {
     public:
       enum Status {CONVERGED=1, NOTCONVERGED=2, STALLED=3};
       StefCal(uint solInt, uint nChan, string mode, uint maxAntennas);
-      void doStep_polarized();
-      void doStep_unpolarized(bool phaseOnly);
-      Status relax(uint iter);
       void resetVis(uint nSt);
       void init();
+      void doStep();
+      Status relax(uint iter);
       casa::Matrix<casa::DComplex> getSolution();
 
-      bool converged;
       std::vector<int> _antMap; // Length antennaNames, contains size(antennaNames)-nSt times the value -1
                                 // Values are indices in the stefcal internal numbering
       casa::Matrix<casa::DComplex> g; // Station, correlation
@@ -55,6 +53,8 @@ namespace LOFAR {
       uint savedNCr; // number of correlations stored (1,2 or 4)
 
     private:
+      void doStep_polarized();
+      void doStep_unpolarized(bool phaseOnly);
       casa::Matrix<casa::DComplex> gx;
       casa::Matrix<casa::DComplex> gxx;
       casa::Matrix<casa::DComplex> gold;
diff --git a/CEP/DP3/DPPP/src/GainCal.cc b/CEP/DP3/DPPP/src/GainCal.cc
index c1f8925d662a31ba1295522b28d4aa2b7b77cbd9..44cec4991d194220be99845783b9fe22bc334f04 100644
--- a/CEP/DP3/DPPP/src/GainCal.cc
+++ b/CEP/DP3/DPPP/src/GainCal.cc
@@ -374,11 +374,7 @@ namespace LOFAR {
           if (converged[freqCell]==StefCal::CONVERGED) { // Do another step when stalled and not all converged
             continue;
           }
-          if (mode=="fulljones") {
-            iS[freqCell].doStep_polarized();
-          } else {
-            iS[freqCell].doStep_unpolarized(itsMode=="phaseonly" || itsMode=="scalarphase");
-          }
+          iS[freqCell].doStep();
         } // ============================== Relaxation   =======================
         if (iter % 2 == 1) {
           if (itsDebugLevel>7) {
diff --git a/CEP/DP3/DPPP/src/StefCal.cc b/CEP/DP3/DPPP/src/StefCal.cc
index c7175bb3cf82d234aa9e723f78e86f84d81d8a02..3249ee42a37b9a41c3bd10df5291047826312e38 100644
--- a/CEP/DP3/DPPP/src/StefCal.cc
+++ b/CEP/DP3/DPPP/src/StefCal.cc
@@ -119,6 +119,15 @@ namespace LOFAR {
       gx = g;
     }
 
+    void StefCal::doStep() {
+      if (_mode=="fulljones") {
+        doStep_polarized();
+      } else {
+
+        doStep_unpolarized(_mode=="phaseonly" || _mode=="scalarphase");
+      }
+    }
+
     void StefCal::doStep_polarized() {
       gold = g;