initial implementation of GeoLocationProvider