refactoring: move Geocoder functionality into a separate class