what is a retain cycle