allow finite cycles