rewrite 3 stage. Change order stage