conditional step-by-step creation