change generation cycle