diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml
index 500df57a777ece5751123a94bb5262012d8d131a..d83a0339160088433b1a8a93f9e8fd8abf78a5f1 100644
--- a/src/main/AndroidManifest.xml
+++ b/src/main/AndroidManifest.xml
@@ -6,6 +6,7 @@
     <uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
     <uses-permission android:name="android.permission.VIBRATE"/>
     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
 
diff --git a/src/main/java/com/notificationFramework/sedentary/frontEnd/SaveFile.java b/src/main/java/com/notificationFramework/sedentary/frontEnd/SaveFile.java
index cd083c2318463fa1cb14d7d89753a836cee58616..7d87f8efd61a965db0e4332ded44e84641c68888 100644
--- a/src/main/java/com/notificationFramework/sedentary/frontEnd/SaveFile.java
+++ b/src/main/java/com/notificationFramework/sedentary/frontEnd/SaveFile.java
@@ -1,11 +1,14 @@
 package com.notificationFramework.sedentary.frontEnd;
 
 import android.content.Context;
+import android.content.Intent;
 import android.content.SharedPreferences;
 import android.os.Environment;
 import android.util.Log;
 
+import com.google.android.gms.awareness.Awareness;
 import com.google.android.gms.awareness.state.Weather;
+import com.google.android.gms.common.api.GoogleApiClient;
 import com.google.android.gms.location.places.PlaceLikelihood;
 
 import java.io.BufferedOutputStream;
@@ -166,6 +169,7 @@ public class SaveFile {
             }
         }
         recordTimeStamp(sent, clicked, movement, acknowledged, context);
+        getExtraData(context);
     }
 
     /**
@@ -327,6 +331,36 @@ public class SaveFile {
         }
     }
 
+
+    private static void getExtraData(Context context){
+        GoogleApiClient client;
+        client = new GoogleApiClient.Builder(context)
+                .addApi(Awareness.getSnapshotClient(context).getApi()).build();
+        client.connect();
+        try {
+            double latitude = Awareness.getSnapshotClient(context).getLocation()
+                    .getResult().getLocation().getLatitude();
+            double longitude = Awareness.getSnapshotClient(context).getLocation()
+                    .getResult().getLocation().getLongitude();
+            List<PlaceLikelihood> placeLikelihoods = Awareness.getSnapshotClient(context)
+                    .getPlaces().getResult().getPlaceLikelihoods();
+            Weather weather = Awareness.getSnapshotClient(context).getWeather().getResult()
+                    .getWeather();
+            SharedPreferences preferences = context.getSharedPreferences(context.getString(R.string.preference_file_key),
+                    Context.MODE_PRIVATE);
+            SharedPreferences.Editor editor = preferences.edit();
+            editor.putLong(context.getString(R.string.store_lat),Double.doubleToLongBits(latitude));
+            editor.putLong(context.getString(R.string.store_long),Double.doubleToLongBits(longitude));
+            editor.putString(context.getString(R.string.store_place), String.valueOf(placeLikelihoods.get(0).getPlace().getName()));
+            editor.putFloat(context.getString(R.string.store_placelike), placeLikelihoods.get(0).getLikelihood());
+            editor.putFloat(context.getString(R.string.store_temp),weather.getTemperature(Weather.CELSIUS));
+            editor.commit();
+            recordData(latitude, longitude, placeLikelihoods, weather, context);
+        }catch(SecurityException e){
+            Intent i = new Intent(context, RequestPermission.class);
+            context.startActivity(i);
+        }
+    }
     /**
      * Checks if external storage is available on the device.
      *
diff --git a/src/main/java/com/notificationFramework/stimulusStrategy/Accelerometer.java b/src/main/java/com/notificationFramework/stimulusStrategy/Accelerometer.java
index 6d6d28ee091e1cb2841afeddf5fc1240517fe2fd..91473c7ccc5be8cc0126b27b6ae4b4df96f84a5c 100644
--- a/src/main/java/com/notificationFramework/stimulusStrategy/Accelerometer.java
+++ b/src/main/java/com/notificationFramework/stimulusStrategy/Accelerometer.java
@@ -170,7 +170,6 @@ public class Accelerometer extends Service implements StimulusStrategy, SensorEv
         PendingIntent pi = PendingIntent.getBroadcast(getBaseContext(),
                 R.integer.alarm_rc, i, PendingIntent.FLAG_UPDATE_CURRENT);
         am.cancel(pi);
-        getExtraData();
         SaveFile.recordNotification(0, 0, 1,0, this);
         setUpClock();
     }
@@ -240,29 +239,7 @@ public class Accelerometer extends Service implements StimulusStrategy, SensorEv
     }
 
 
-    private void getExtraData(){
-        try {
-            double latitude = Awareness.getSnapshotClient(this).getLocation()
-                    .getResult().getLocation().getLatitude();
-            double longitude = Awareness.getSnapshotClient(this).getLocation()
-                    .getResult().getLocation().getLongitude();
-            List<PlaceLikelihood> placeLikelihoods = Awareness.getSnapshotClient(this)
-                    .getPlaces().getResult().getPlaceLikelihoods();
-            Weather weather = Awareness.getSnapshotClient(this).getWeather().getResult()
-                    .getWeather();
-            SharedPreferences.Editor editor = preferences.edit();
-            editor.putLong(this.getString(R.string.store_lat),Double.doubleToLongBits(latitude));
-            editor.putLong(this.getString(R.string.store_long),Double.doubleToLongBits(longitude));
-            editor.putString(this.getString(R.string.store_place), String.valueOf(placeLikelihoods.get(0).getPlace().getName()));
-            editor.putFloat(this.getString(R.string.store_placelike), placeLikelihoods.get(0).getLikelihood());
-            editor.putFloat(this.getString(R.string.store_temp),weather.getTemperature(Weather.CELSIUS));
-            editor.commit();
-            SaveFile.recordData(latitude, longitude, placeLikelihoods, weather, this);
-        }catch(SecurityException e){
-            Intent i = new Intent(this, RequestPermission.class);
-            startActivity(i);
-        }
-    }
+
 
     /**
      * Unused as accuracy is not a major factor when using previous values. Required by
diff --git a/src/main/java/com/notificationFramework/stimulusStrategy/SigMotionDetect.java b/src/main/java/com/notificationFramework/stimulusStrategy/SigMotionDetect.java
index 279400b1cbdff1f78f0a8b3e1984c24596584568..964ed7d781db894691b4b9c3487036a7ad3bb6bc 100644
--- a/src/main/java/com/notificationFramework/stimulusStrategy/SigMotionDetect.java
+++ b/src/main/java/com/notificationFramework/stimulusStrategy/SigMotionDetect.java
@@ -89,7 +89,6 @@ public class SigMotionDetect extends Service implements StimulusStrategy {
      */
     private int prevMinutes;
 
-    private GoogleApiClient client;
 
 
     /**
@@ -107,9 +106,6 @@ public class SigMotionDetect extends Service implements StimulusStrategy {
      */
     @Override
     public int onStartCommand(Intent intent, int flags, int startId) {
-        client = new GoogleApiClient.Builder(this)
-                .addApi(Awareness.getSnapshotClient(this).getApi()).build();
-        client.connect();
         am = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
         setUpClock();
         setUpDailyProgress();