factor out the GeoCodeModel