Refactor NetworkGeolocationProvider in order to support multiple data sources