bug fix and a bit reconstruct