diff --git a/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java b/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java
index 92ec218b8b9a167bb90153e4d697bb0b95ee9820..65a01d9899d3e0c693cdcfeaca6f5c68257fe6f7 100644
--- a/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java
+++ b/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java
@@ -87,20 +87,19 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc
     private static final String TAG = MainActivity.class.getSimpleName();
     public static final float MMOLXLFACTOR = 18.016f;
 
-    //public static int batLevel = 0;
     private DataStore dataStore = DataStore.getInstance();
     private ConfigurationStore configurationStore = ConfigurationStore.getInstance();
 
-    private static long activePumpMac;
+//    private static long activePumpMac;
+//    private static boolean mmolxl;
+//    private static boolean mmolxlDecimals;
+
     private int chartZoom = 3;
     private boolean hasZoomedChart = false;
-
     private NumberFormat sgvFormatter;
-    private static boolean mmolxl;
-    private static boolean mmolxlDecimals;
 
-    boolean mEnableCgmService = true;
-    SharedPreferences prefs = null;
+    private boolean mEnableCgmService = true;
+    private SharedPreferences prefs = null;
     private PumpInfo mActivePump;
     private TextView mTextViewLog; // This will eventually move to a status page.
     private GraphView mChart;
@@ -143,9 +142,10 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc
     }
 
     public static String strFormatSGV(float sgvValue) {
-        if (mmolxl) {
+        ConfigurationStore configurationStore = ConfigurationStore.getInstance();
+        if (configurationStore.isMmolxl()) {
             NumberFormat sgvFormatter;
-            if (mmolxlDecimals) {
+            if (configurationStore.isMmolxlDecimals()) {
                 sgvFormatter = new DecimalFormat("0.00");
             } else {
                 sgvFormatter = new DecimalFormat("0.0");
@@ -185,11 +185,11 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc
         configurationStore.setReducePollOnPumpAway(prefs.getBoolean("doublePollOnPumpAway", false));
 
         chartZoom = Integer.parseInt(prefs.getString("chartZoom", "3"));
-        mmolxl = prefs.getBoolean("mmolxl", false);
-        mmolxlDecimals = prefs.getBoolean("mmolDecimals", false);
+        configurationStore.setMmolxl(prefs.getBoolean("mmolxl", false));
+        configurationStore.setMmolxlDecimals(prefs.getBoolean("mmolDecimals", false));
 
-        if (mmolxl) {
-            if (mmolxlDecimals)
+        if (configurationStore.isMmolxl()) {
+            if (configurationStore.isMmolxlDecimals())
                 sgvFormatter = new DecimalFormat("0.00");
             else
                 sgvFormatter = new DecimalFormat("0.0");
@@ -539,10 +539,10 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc
                 startCgmService();
             }
         } else if (key.equals("mmolxl") || key.equals("mmolDecimals")) {
-            mmolxl = sharedPreferences.getBoolean("mmolxl", false);
-            mmolxlDecimals = sharedPreferences.getBoolean("mmolDecimals", false);
-            if (mmolxl) {
-                if (mmolxlDecimals)
+            configurationStore.setMmolxl(sharedPreferences.getBoolean("mmolxl", false));
+            configurationStore.setMmolxlDecimals(sharedPreferences.getBoolean("mmolDecimals", false));
+            if (configurationStore.isMmolxl()) {
+                if (configurationStore.isMmolxlDecimals())
                     sgvFormatter = new DecimalFormat("0.00");
                 else
                     sgvFormatter = new DecimalFormat("0.0");
@@ -606,11 +606,8 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc
         }
     }
 
-    public static void setActivePumpMac(long pumpMac) {
-        activePumpMac = pumpMac;
-    }
-
     private PumpInfo getActivePump() {
+        long activePumpMac = dataStore.getActivePumpMac();
         if (activePumpMac != 0L && (mActivePump == null || !mActivePump.isValid() || mActivePump.getPumpMac() != activePumpMac)) {
             if (mActivePump != null) {
                 // remove listener on old pump
@@ -620,7 +617,7 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc
 
             PumpInfo pump = mRealm
                     .where(PumpInfo.class)
-                    .equalTo("pumpMac", MainActivity.activePumpMac)
+                    .equalTo("pumpMac", activePumpMac)
                     .findFirst();
 
             if (pump != null && pump.isValid()) {
@@ -741,7 +738,7 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc
             TextView textViewBg = (TextView) findViewById(R.id.textview_bg);
             TextView textViewBgTime = (TextView) findViewById(R.id.textview_bg_time);
             TextView textViewUnits = (TextView) findViewById(R.id.textview_units);
-            if (mmolxl) {
+            if (configurationStore.isMmolxl()) {
                 textViewUnits.setText(R.string.text_unit_mmolxl);
             } else {
                 textViewUnits.setText(R.string.text_unit_mgxdl);
@@ -766,7 +763,7 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc
             if (pumpStatusData != null) {
 
                 String sgvString;
-                if (mmolxl) {
+                if (configurationStore.isMmolxl()) {
                     float fBgValue = (float) pumpStatusData.getSgv();
                     sgvString = sgvFormatter.format(fBgValue / MMOLXLFACTOR);
                     Log.d(TAG, sgvString + " mmol/L");
@@ -829,7 +826,7 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc
                 mChart.getViewport().setMinX(left);
 
                 mChart.getViewport().setYAxisBoundsManual(true);
-                if (mmolxl) {
+                if (configurationStore.isMmolxl()) {
                     mChart.getViewport().setMinY(80 / MMOLXLFACTOR);
                     mChart.getViewport().setMaxY(120 / MMOLXLFACTOR);
                 } else {
@@ -848,7 +845,7 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc
                 // turn your data into Entry objects
                 int sgv = pumpStatus.getSgv();
 
-                if (mmolxl) {
+                if (configurationStore.isMmolxl()) {
                     entries[pos++] = new DataPoint(pumpStatus.getEventDate(), (float) pumpStatus.getSgv() / MMOLXLFACTOR);
                 } else {
                     entries[pos++] = new DataPoint(pumpStatus.getEventDate(), (float) pumpStatus.getSgv());
@@ -886,6 +883,7 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc
                     @Override
                     public void draw(Canvas canvas, Paint paint, float x, float y, DataPointInterface dataPoint) {
                         double sgv = dataPoint.getY();
+                        boolean mmolxl = configurationStore.isMmolxl();
                         if (sgv < (mmolxl?4.5:80))
                             paint.setColor(Color.RED);
                         else if (sgv <= (mmolxl?10:180))
diff --git a/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java b/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java
index 4f8795561c9d0c7e93b6800bb5f662e097b15c36..b7881f6c2d24c284ef14f116d98f83d15b61b85f 100644
--- a/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java
+++ b/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java
@@ -228,7 +228,8 @@ public class MedtronicCnlIntentService extends IntentService {
                     Log.i(TAG, "Could not communicate with the 640g. Are you near the pump?");
                     pollInterval = configurationStore.getPollInterval() / (configurationStore.isReducePollOnPumpAway()?2L:1L); // reduce polling interval to half until pump is available
                 } else {
-                    setActivePumpMac(pumpMAC);
+                    dataStore.setActivePumpMac(pumpMAC);
+
                     activePump.setLastRadioChannel(radioChannel);
                     sendStatus(String.format(Locale.getDefault(), "Connected on channel %d  RSSI: %d%%", (int) radioChannel, cnlReader.getPumpSession().getRadioRSSIpercentage()));
                     Log.d(TAG, String.format("Connected to Contour Next Link on channel %d.", (int) radioChannel));
@@ -365,10 +366,6 @@ public class MedtronicCnlIntentService extends IntentService {
         }
     }
 
-    private void setActivePumpMac(long pumpMAC) {
-        MainActivity.setActivePumpMac(pumpMAC);
-    }
-
     // reliable wake alarm manager wake up for all android versions
     public static void wakeUpIntent(Context context, long wakeTime, PendingIntent pendingIntent) {
         final AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
diff --git a/app/src/main/java/info/nightscout/android/utils/ConfigurationStore.java b/app/src/main/java/info/nightscout/android/utils/ConfigurationStore.java
index d9b492bef085839fc91a65361e576e7710bf9aa6..1a4fca0c7c7a15b5e96607ed2f56ea389702c501 100644
--- a/app/src/main/java/info/nightscout/android/utils/ConfigurationStore.java
+++ b/app/src/main/java/info/nightscout/android/utils/ConfigurationStore.java
@@ -14,6 +14,8 @@ public class ConfigurationStore {
     private boolean reducePollOnPumpAway = false;
     private long pollInterval = MedtronicCnlIntentService.POLL_PERIOD_MS;
     private long lowBatteryPollInterval = MedtronicCnlIntentService.LOW_BATTERY_POLL_PERIOD_MS;
+    private boolean mmolxl;
+    private boolean mmolxlDecimals;
 
     public static ConfigurationStore getInstance() {
         if (ConfigurationStore.instance == null) {
@@ -47,4 +49,19 @@ public class ConfigurationStore {
         this.lowBatteryPollInterval = lowBatteryPollInterval;
     }
 
+    public boolean isMmolxl() {
+        return mmolxl;
+    }
+
+    public void setMmolxl(boolean mmolxl) {
+        this.mmolxl = mmolxl;
+    }
+
+    public boolean isMmolxlDecimals() {
+        return mmolxlDecimals;
+    }
+
+    public void setMmolxlDecimals(boolean mmolxlDecimals) {
+        this.mmolxlDecimals = mmolxlDecimals;
+    }
 }
diff --git a/app/src/main/java/info/nightscout/android/utils/DataStore.java b/app/src/main/java/info/nightscout/android/utils/DataStore.java
index c065fad29832855a9502e2cf97f317ae3f8fd914..34ff4deec0737d25133e442a9f1bc6948ebf0ba6 100644
--- a/app/src/main/java/info/nightscout/android/utils/DataStore.java
+++ b/app/src/main/java/info/nightscout/android/utils/DataStore.java
@@ -15,6 +15,7 @@ public class DataStore {
     private PumpStatusEvent lastPumpStatus;
     private int uplooaderBatteryLevel = 0;
     private int unavailableSGVCount = 0;
+    private long activePumpMac = 0;
 
     private DataStore() {}
 
@@ -62,4 +63,12 @@ public class DataStore {
     public void setUnavailableSGVCount(int unavailableSGVCount) {
         this.unavailableSGVCount = unavailableSGVCount;
     }
+
+    public long getActivePumpMac() {
+        return activePumpMac;
+    }
+
+    public void setActivePumpMac(long activePumpMac) {
+        this.activePumpMac = activePumpMac;
+    }
 }