adding dynamic step generation; examples