refactoring + reverse geocode