add step logic