added persistence with SharedPrefs