added SharedPreferences feature