merge from xiaochi