use prepareGeometryChange();