public virtual void ExecutionStarted(IActivityExecution execution)
        {
            if (execution is ExecutionEntity && delayFireHistoricVariableEvents)
            {
                ExecutionEntity executionEntity = (ExecutionEntity)execution;
                executionEntity.FireHistoricVariableInstanceCreateEvents();
            }

            IActivityExecution parent = execution;

            while ((parent != null) && (parent.ExecutionStartContext != null))
            {
                parent.DisposeExecutionStartContext();
                parent = parent.Parent;
            }
        }