fixed progression logic