added steps function