public static void Main()
step1.DoSomethingInStep1();
step1.FallbackFromStep1();
step2.DoSomethingInStep2();
step2.FallbackFromStep2();
step1.FallbackFromStep1();
step3.DoSomethingInStep3();
step3.FallbackFromStep3();
step2.FallbackFromStep2();
step1.FallbackFromStep1();
public void DoSomethingInStep1() {}
public void FallbackFromStep1() {}
public void DoSomethingInStep2() {}
public void FallbackFromStep2() {}
public void DoSomethingInStep3() {}
public void FallbackFromStep3() {}