[step length] == 0 is better than comparing against an empty string IMO