cycle detection and destroy()