Improved geolocation flow, moved stuff to service