the replacement method is unstable and heavy, back to the insertion