reverse geocoding + refactoring