adding stepped implementation