has a cycle