geocoding refactor