start to reconstructor and make it support dist