edit by orain.xiong