add FINISH and PUSH states