public virtual Task <ChainReturnValue <TReturnType> > ExecuteUp(ExecArgs <TParameterType, TReturnType> execArgs)
 {
     return(Task.FromResult(new ChainReturnValue <TReturnType>()
     {
         Value = execArgs.PreviousReturnValue
     }));
 }
 public abstract Task <BreakableChainReturnValue <TReturnType> > ExecuteDown(ExecArgs <TParameterType, TReturnType> execArgs);