added cache for geometry