working on self call edge (loop)