Geolocation refactor