reconstruct weightMap and refactory