move cycling to analyzer.utils