history is pushed before operation steps execute