public abstract void Simulate(TMiddleman _args);
 protected abstract void OnExecutionDiscovery(TMiddleman Middleman);
 public void OnBaseDiscovery(Action <ConcurrentExecution>[] ExecutionCommands,
                             TMiddleman Middleman)
 {
     _executioncommands = ExecutionCommands;
     this.OnExecutionDiscovery(Middleman);
 }
 public abstract void OnBehaviourDiscovered(Action <ConcurrentExecution>[] ExecutionCommands, TMiddleman Middleman);