import some changes from three branch