# Functions
NewExecutor return a new executor.
# Variables
ErrAlreadyExecuted is returned if it has already run.
ErrCannotAdd is returned if the executor had already ran and a new operation is added.
ErrNeverRun is returned if the step was never run.
# Interfaces
Context holds the information of each execution step.