modify and reconstruct