modify 2
by myself merge