update to a more robust handling of geometries, this will require a
bunch of other updates