reverted to old updategeom() after several complains, we need to optimize the old way