optimize findnextstep