use cycle from itertools