optimize geometry transport between UDFs and cache recently used geometries
don't assume geom helper isn't null