add reset fn, and fn to do all steps at once