add step-by-step interaction