geolocation: create instance by demand