Index: trunk/BNC/src/PPP/pppClient.cpp
===================================================================
--- trunk/BNC/src/PPP/pppClient.cpp	(revision 7204)
+++ trunk/BNC/src/PPP/pppClient.cpp	(revision 7218)
@@ -44,4 +44,5 @@
 
 #include "pppClient.h"
+#include "pppUtils.h"
 #include "bncephuser.h"
 #include "bncutils.h"
@@ -53,15 +54,10 @@
 ////////////////////////////////////////////////////////////////////////////
 t_pppClient::t_pppClient(const t_pppOptions* opt) {
-
-  _opt     = new t_pppOptions(*opt);
-  _filter  = new t_pppFilter(this);
-  _epoData = new t_epoData();
-  _log     = new ostringstream();
-  _ephUser = new bncEphUser(false);
-
-  for (unsigned ii = 0; ii <= t_prn::MAXPRN; ii++) {
-    _satCodeBiases[ii] = 0;
-  }
-
+  _opt      = new t_pppOptions(*opt);
+  _filter   = new t_pppFilter(this);
+  _epoData  = new t_epoData();
+  _log      = new ostringstream();
+  _ephUser  = new bncEphUser(false);
+  _pppUtils = new t_pppUtils();
 }
 
@@ -69,9 +65,4 @@
 ////////////////////////////////////////////////////////////////////////////
 t_pppClient::~t_pppClient() {
-
-  for (unsigned ii = 0; ii <= t_prn::MAXPRN; ii++) {
-    delete _satCodeBiases[ii];
-  }
-
   delete _filter;
   delete _epoData;
@@ -112,5 +103,5 @@
       t_frqObs* frqObs = obs->_obs[ifrq];
       double cb = 0.0;
-      const t_satCodeBias* satCB = satCodeBias(prn);
+      const t_satCodeBias* satCB = _pppUtils->satCodeBias(prn);
       if (satCB && satCB->_bias.size()) {
         for (unsigned ii = 0; ii < satCB->_bias.size(); ii++) {
@@ -337,5 +328,5 @@
 void t_pppClient::putCodeBiases(const std::vector<t_satCodeBias*>& satCodeBias) {
   for (unsigned ii = 0; ii < satCodeBias.size(); ii++) {
-    putCodeBias(new t_satCodeBias(*satCodeBias[ii]));
+    _pppUtils->putCodeBias(new t_satCodeBias(*satCodeBias[ii]));
   }
 }
@@ -412,8 +403,2 @@
   return failure;
 }
-
-void t_pppClient::putCodeBias(t_satCodeBias* satCodeBias) {
-  int iPrn = satCodeBias->_prn.toInt();
-  delete _satCodeBiases[iPrn];
-  _satCodeBiases[iPrn] = satCodeBias;
-}
Index: trunk/BNC/src/PPP/pppClient.h
===================================================================
--- trunk/BNC/src/PPP/pppClient.h	(revision 7204)
+++ trunk/BNC/src/PPP/pppClient.h	(revision 7218)
@@ -32,4 +32,5 @@
 #include "pppOptions.h"
 #include "pppFilter.h"
+#include "pppUtils.h"
 
 class bncEphUser;
@@ -49,8 +50,8 @@
   std::ostringstream& log() {return *_log;}
   const t_pppOptions* opt() const {return _opt;}
-  void putCodeBias(t_satCodeBias* satCodeBias);
-  const t_satCodeBias* satCodeBias(const t_prn& prn) const {
-    return _satCodeBiases[prn.toInt()];
-  }
+  //void putCodeBias(t_satCodeBias* satCodeBias);
+  //const t_satCodeBias* satCodeBias(const t_prn& prn) const {
+  //  return _satCodeBiases[prn.toInt()];
+  //}
  private:
   t_irc getSatPos(const bncTime& tt, const QString& prn, ColumnVector& xc, ColumnVector& vv);
@@ -58,9 +59,10 @@
   t_irc cmpToT(t_satData* satData);
 
-  t_satCodeBias*       _satCodeBiases[t_prn::MAXPRN+1];
+//  t_satCodeBias*       _satCodeBiases[t_prn::MAXPRN+1];
   bncEphUser*         _ephUser;
   t_pppOptions*       _opt;
   t_epoData*          _epoData;
   t_pppFilter*        _filter;
+  t_pppUtils*         _pppUtils;
   std::ostringstream* _log; 
 };
Index: trunk/BNC/src/PPP/pppUtils.cpp
===================================================================
--- trunk/BNC/src/PPP/pppUtils.cpp	(revision 7218)
+++ trunk/BNC/src/PPP/pppUtils.cpp	(revision 7218)
@@ -0,0 +1,48 @@
+/* -------------------------------------------------------------------------
+ * BKG NTRIP Client
+ * -------------------------------------------------------------------------
+ *
+ * Class:      t_pppUtils
+ *
+ * Purpose:    Auxiliary Functions for PPP
+ *
+ * Author:     A. Stürze
+ *
+ * Created:    18-Aug-2015
+ *
+ * Changes:
+ *
+ * -----------------------------------------------------------------------*/
+
+#include "pppUtils.h"
+#include "bncutils.h"
+#include "pppModel.h"
+
+using namespace BNC_PPP;
+using namespace std;
+
+
+
+// Constructor
+//////////////////////////////////////////////////////////////////////////////
+t_pppUtils::t_pppUtils() {
+  for (unsigned ii = 0; ii <= t_prn::MAXPRN; ii++) {
+    _satCodeBiases[ii] = 0;
+  }
+}
+
+// Destructor
+//////////////////////////////////////////////////////////////////////////////
+t_pppUtils::~t_pppUtils() {
+  for (unsigned ii = 0; ii <= t_prn::MAXPRN; ii++) {
+    delete _satCodeBiases[ii];
+  }
+}
+
+//
+//////////////////////////////////////////////////////////////////////////////
+void t_pppUtils::putCodeBias(t_satCodeBias* satCodeBias) {
+  int iPrn = satCodeBias->_prn.toInt();
+  delete _satCodeBiases[iPrn];
+  _satCodeBiases[iPrn] = satCodeBias;
+}
Index: trunk/BNC/src/PPP/pppUtils.h
===================================================================
--- trunk/BNC/src/PPP/pppUtils.h	(revision 7218)
+++ trunk/BNC/src/PPP/pppUtils.h	(revision 7218)
@@ -0,0 +1,26 @@
+#ifndef PPPUTILS_H
+#define PPPUTILS_H
+
+#include <string>
+#include <newmat.h>
+#include "satObs.h"
+
+namespace BNC_PPP {
+
+class t_pppUtils {
+ public:
+  t_pppUtils();
+  ~t_pppUtils();
+  void putCodeBias(t_satCodeBias* satCodeBias);
+  const t_satCodeBias* satCodeBias(const t_prn& prn) const {
+      return _satCodeBiases[prn.toInt()];
+  }
+
+ private:
+  t_satCodeBias*   _satCodeBiases[t_prn::MAXPRN+1];
+
+};
+
+}
+
+#endif
