public RootController() { // initialize this agent presentation = new RootPresentation(); abstraction = new RootAbstraction(); // initialize input agent input = new InputController(this); presentation.SetInputUI(input.GetUI()); // initialize output agent output = new OutputController(this); presentation.SetOutputUI(output.GetUI()); // show the window presentation.RegisterOnClose((sender, e) => { Shutdown(); }); presentation.ShowUI(); }