improve mechanism for listening for location updates