support complex geometries