add imperfect cycler