introduced segment iterator 2d