public override Task Execute(State state) { if (ShowHelp(state)) { var helpGenerator = new HelpGenerator(this); return(helpGenerator.Write()); } if (Next == null) { throw new Exception("TODO: Good message"); } return(Next.Execute(state)); }