edit by liuyong