added cyclic option