cleaned up geocode method