changes by mingq