more refactoring: added a Geocoder class