initialize and clear data for stages using preExecute() and
postExecute() methods
simplified and unified the structure of stages (preExecute >
executeStage > postExecute)