[Update code] Refiend GPSManager and add a UserDefaults extends