geometry as dynamic type