merge from fengliu222