OK definitely it'll be cleaner. How do you propose we return argument parsing result (let call it ParsingResult) via ServiceRoot? If we expose ArgumentParser via ServiceRoot then we will have to parse args twice - first during CompositionRoot.Initialize method, secondly in Program.Main (or CommandFactory if we clean up Main). Or am I going into entirely wrong direction?