refactor step changing, auto-update results