modify by qinlei